diff --git a/configs/kr_lp_pgnet.yml b/configs/kr_lp_pgnet.yml index d8fcc80..77577be 100644 --- a/configs/kr_lp_pgnet.yml +++ b/configs/kr_lp_pgnet.yml @@ -1,6 +1,6 @@ Global: use_gpu: True - epoch_num: 200 + epoch_num: 50 log_smooth_window: 20 print_batch_step: 10 save_model_dir: ./output/kr_lp_pgnet/ diff --git a/scripts/run_step1.sh b/scripts/run_step1.sh new file mode 100755 index 0000000..7f8939c --- /dev/null +++ b/scripts/run_step1.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash +# Step1 pretrain — 합성 데이터로 PGNet 학습 +# +# 컨테이너 안 실행: +# docker exec kr_lp_pgnet bash /workspace/kr_lp_pgnet/scripts/run_step1.sh +# +# 환경 변수: +# DRY_RUN=1 2 epoch만 돌려 동작 검증 +# EPOCHS=N epoch 수 override (기본 config의 epoch_num) +# LOG=path 로그 파일 (기본: /workspace/PaddleOCR/output/kr_lp_pgnet/train.log) + +set -euo pipefail + +PADDLEOCR_DIR=/workspace/PaddleOCR +KR_LP_DIR=/workspace/kr_lp_pgnet +TRAIN_DATA=/workspace/train_data +LOG="${LOG:-$PADDLEOCR_DIR/output/kr_lp_pgnet/train.log}" + +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")" + +OVERRIDE=( + -o Global.pretrained_model=./pretrain_models/train_step1/best_accuracy + Global.load_static_weights=False +) +if [ -n "${EPOCHS:-}" ]; then + OVERRIDE+=(Global.epoch_num="$EPOCHS") +fi +if [ "${DRY_RUN:-0}" = "1" ]; then + OVERRIDE+=(Global.epoch_num=2 Global.eval_batch_step="[0,200]") + echo "DRY_RUN=1 → 2 epoch만 실행" +fi + +echo "===========================" +echo "Step1 학습 시작" +echo " config: configs/e2e/kr_lp_pgnet.yml" +echo " data: $TRAIN_DATA/kr_lp_synth/" +echo " pretrain: pretrain_models/train_step1/best_accuracy" +echo " log: $LOG" +echo " override: ${OVERRIDE[@]}" +echo "===========================" + +python3.10 tools/train.py -c configs/e2e/kr_lp_pgnet.yml "${OVERRIDE[@]}" 2>&1 | tee "$LOG"