딥러닝 실험을 진행하다보면 다양한 하이퍼파라미터들이 존재하며 이들에 대해 하나씩 실험을 진행하기엔 상당히 비효율적이다.
하지만, bash 파일을 작성 후 이를 백그라운드로 돌리면 언제 끝나는지 신경쓰지 않아도 되며, 매 실험이 종료될 때마다 새로운 실험이 자동적으로 실행되므로 상당히 편리한 방법이다.
terminal 오픈 후
vi train.sh
bash 작성 :
#!/bin/bash
for lr in 0.1 0.05 0.01 0.005
do
for decay in 0.001 0.005 0.01
do
for batch_size in 8 16 32
do
CUDA_VISIBLE_DEVICES=0 python3 train.py ${lr} ${decay} ${batch_size} > result_train_${lr}_${decay}_${batch_size}.log (로그 파일을 저장할 경로 & 파일명)
done
done
done
:wq -> bash file 저장 후 out 명령어
빠져나온 후 sh train.sh
실행
백그라운드로 실험 돌리고 싶은 경우, nohup sh train.sh &
-> 결과가 nohup.out에 저장됨
경로를 현재 경로로 지정되어있기 때문에 현재 경로에 result_train_${lr}_${decay}_${batch_size}.log
파일이 생성 중이다.
실시간으로 쌓이는 로그를 보고 싶다면, 로그 파일이 생성되는 경로에 가서
tail -f result_train_${lr}_${decay}_${batch_size}.log
를 입력하면 확인 가능하다.
ctrl+c를 눌러도 실험이 종료되지 않으니 걱정말 것!!
오! 안그래도 비효율적이라 생각했는데 고맙네요~! ㅎㅎ 감사합니다!