#!/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"