카테고리 없음
(자연어처리/word RNN) <밑바닥부터 시작하는 딥러닝2> 6장 훈련코드 수정하여 연속 훈련하기
미친토끼
2021. 7. 17. 19:55
<밑바닥부터 시작하는 딥러닝2> 6장의 훈련 코드 train_better_rnnlm.py를 실행시키면 시간이 많이 걸린다.
40 에폭을 훈련시키자면 필자의 컴퓨터(i7-10700k)에서는 4시간 정도, 서브 컴퓨터인 i7-3770에서는 8시간 이상, 노트북에서는 16시간이 걸린다. 한번 Ctrl-C를 잘못 눌러서 프로그램이 종료되었다고 치면, 이를 처음부터 다시 실행시키는 것은 참으로 답답한 일이 아닐 수 없다. (모두 CPU만 사용할 경우)
train_better_rnnlm.py에서는 훈련 도중에 가중치 값들을 BetterRnnlm.pkl 에 저장하므로, 이를 불러와서 훈련을 이어 나가면 된다.
가중치를 불러오는 타임은, 모델을 만든 이후, 훈련을 하기 전이다. 즉,
model = BetterRnnlm(vocab_size, wordvec_size, hidden_size, dropout)
와
for epoch in range(max_epoch):
사이에 아래 코드를 추가한다.
keep_training = 1 # 0: 처음 훈련, 혹은 처음부터 훈련 1: 훈련 재개, 기존 훈련 가중치를 이어받음
if keep_training == 1:
model.load_params('./BetterRnnlm.pkl')
주석 설명처럼, keep_training 값을 조절하여 model.load_params()를 실행하여 파라미터를 모델에 적재해서 훈련을 하면, 그 가중치값이 적용된다.