run_step1: add timestamp to output dir and wandb run name, reset synth data on each run

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
main
songhyeonsoo 4 weeks ago
parent 77c566a10a
commit f4e8d2ba4b

@ -7,7 +7,7 @@
# 환경 변수:
# DRY_RUN=1 2 epoch만 돌려 동작 검증
# EPOCHS=N epoch 수 override (기본 config의 epoch_num)
# LOG=path 로그 파일 (기본: /workspace/PaddleOCR/output/kr_lp_pgnet/train.log)
# NUM_SAMPLES=N 합성 데이터 수 (기본 50000)
set -euo pipefail
@ -16,16 +16,22 @@ KR_LP_DIR=/workspace/kr_lp_pgnet
TRAIN_DATA=/workspace/train_data
SYNTH_DIR="$TRAIN_DATA/kr_lp_synth"
ASSET_DIR="$KR_LP_DIR/data_gen/Korean-license-plate-Generator"
LOG="${LOG:-$PADDLEOCR_DIR/output/kr_lp_pgnet/train.log}"
NUM_SAMPLES="${NUM_SAMPLES:-10000}"
NUM_SAMPLES="${NUM_SAMPLES:-50000}"
TS=$(date +%Y%m%d_%H%M)
RUN_NAME="step1-${TS}"
OUTPUT_DIR="$PADDLEOCR_DIR/output/kr_lp_pgnet_${TS}"
LOG="$OUTPUT_DIR/run.log"
# ── 1. 합성 데이터 생성 ──────────────────────────────────────────────────────
echo "==========================="
echo "[1/3] 합성 데이터 생성 (${NUM_SAMPLES}장)"
echo " asset: $ASSET_DIR"
echo " out: $SYNTH_DIR"
echo "RUN: $RUN_NAME"
echo "OUTPUT: $OUTPUT_DIR"
echo "==========================="
# ── 1. 합성 데이터 생성 ──────────────────────────────────────────────────────
echo "[1/3] 합성 데이터 생성 (${NUM_SAMPLES}장)"
rm -rf "$SYNTH_DIR"
python3.10 "$KR_LP_DIR/data_gen/generate_synthetic.py" \
--asset_dir "$ASSET_DIR" \
--out_dir "$SYNTH_DIR" \
@ -33,29 +39,28 @@ python3.10 "$KR_LP_DIR/data_gen/generate_synthetic.py" \
--dict "$KR_LP_DIR/dict/kr_lp_dict.txt"
# ── 2. eval GT mat 생성 ─────────────────────────────────────────────────────
echo "==========================="
echo "[2/3] eval GT mat 생성"
echo " label: $SYNTH_DIR/test/test.txt"
echo " out: $SYNTH_DIR/gt/"
echo "==========================="
python3.10 "$KR_LP_DIR/tools/make_gt_mat.py" \
--label "$SYNTH_DIR/test/test.txt" \
--out_dir "$SYNTH_DIR/gt"
# ── 3. 학습 ─────────────────────────────────────────────────────────────────
echo "[3/3] Step1 학습 시작"
cd "$PADDLEOCR_DIR"
# train_data symlink (config는 ./train_data/kr_lp_synth 사용)
if [ ! -e ./train_data ]; then
ln -sf "$TRAIN_DATA" ./train_data
fi
mkdir -p "$(dirname "$LOG")"
mkdir -p "$OUTPUT_DIR"
OVERRIDE=(
-o Global.pretrained_model=./pretrain_models/train_step1/best_accuracy
Global.load_static_weights=False
Global.save_model_dir="${OUTPUT_DIR}/"
Global.save_res_path="${OUTPUT_DIR}/predicts.txt"
wandb.name="${RUN_NAME}"
)
if [ -n "${EPOCHS:-}" ]; then
OVERRIDE+=(Global.epoch_num="$EPOCHS")
@ -65,13 +70,10 @@ if [ "${DRY_RUN:-0}" = "1" ]; then
echo "DRY_RUN=1 → 2 epoch만 실행"
fi
echo "==========================="
echo "[3/3] Step1 학습 시작"
echo " config: configs/e2e/kr_lp_pgnet.yml"
echo " data: $SYNTH_DIR/"
echo " pretrain: pretrain_models/train_step1/best_accuracy"
echo " output: $OUTPUT_DIR/"
echo " wandb: $RUN_NAME"
echo " log: $LOG"
echo " override: ${OVERRIDE[@]}"
echo "==========================="
python3.10 tools/train.py -c configs/e2e/kr_lp_pgnet.yml "${OVERRIDE[@]}" 2>&1 | tee "$LOG"

Loading…
Cancel
Save