File size: 2,234 Bytes
9fe982a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/bash
# Offline token extraction orchestrator.
# Isolated by default. Set ATLAS_ALLOW_OFFLINE=1 to run.
set -e

if [ "${ATLAS_ALLOW_OFFLINE}" != "1" ]; then
    echo "ERROR: This is an OFFLINE extraction orchestrator." >&2
    echo "It is isolated by default to prevent accidental use." >&2
    echo "If you really need it, set:  ATLAS_ALLOW_OFFLINE=1" >&2
    echo "For online training use:  bash scripts/train_no_caption_baseline.sh" >&2
    exit 1
fi

cd /home/guoyuanbo/3dtokenizer-atlas
export LD_LIBRARY_PATH=/home/guoyuanbo/3dtokenizer/envs/streampetr/lib:${LD_LIBRARY_PATH:-}
PY=/home/guoyuanbo/3dtokenizer/envs/streampetr/bin/python

LOG_DIR=work_dirs
DET_OUT=work_dirs/precomputed_det_tokens_offline/val
MAP_OUT=work_dirs/precomputed_map_tokens_offline/val

echo "[$(date)] === Waiting for Phase 1 (StreamPETR det) to finish ==="

# Wait for all extract_streampetr_tokens processes to finish
while pgrep -f "extract_streampetr_tokens.py" > /dev/null 2>&1; do
    DET_COUNT=$(find "$DET_OUT" -name "*.pt" 2>/dev/null | wc -l)
    echo "[$(date)] Phase 1 running... det files: $DET_COUNT / ~12038"
    sleep 300
done

DET_FINAL=$(find "$DET_OUT" -name "*.pt" 2>/dev/null | wc -l)
echo "[$(date)] Phase 1 DONE. Total det files: $DET_FINAL"

echo "[$(date)] === Starting Phase 2 (TopoMLP map) ==="
mkdir -p "$MAP_OUT"

for i in 0 1 2 3; do
    CUDA_VISIBLE_DEVICES=$i $PY extract_topomlp_tokens.py \
        --topomlp_config configs/topomlp_atlas_aligned.py \
        --topomlp_ckpt work_dirs/topomlp_atlas_aligned/epoch_24.pth \
        --data_json "data/atlas_planning_val_uniad_command.json,data/openlane_subsetB_lane_val_4pt.json" \
        --data_root /home/guoyuanbo/autodl-tmp/data/nuscenes \
        --output_dir "$MAP_OUT" \
        --shard_id $i --num_shards 4 \
        > "$LOG_DIR/extract_map_val_shard_${i}.log" 2>&1 &
    echo "[$(date)] Phase 2 shard $i launched (PID=$!)"
done

echo "[$(date)] Waiting for Phase 2 to complete..."
wait

MAP_FINAL=$(find "$MAP_OUT" -name "*.pt" 2>/dev/null | wc -l)
echo "[$(date)] Phase 2 DONE. Total map files: $MAP_FINAL"
echo "[$(date)] === All extraction complete ==="
echo "  Det tokens: $DET_FINAL files in $DET_OUT"
echo "  Map tokens: $MAP_FINAL files in $MAP_OUT"