모델 훈련에 필요한 모든 준비가 완료되었습니다. 이제 준비된 데이터를 이용하여 모델을 학습시킵니다.
코드 2-14 모델 학습
epochs = 500
aggregated_losses = []
train_outputs = train_outputs.to(device=device, dtype=torch.int64)
for i in range(epochs): ------ for 문은 500회 반복되며, 각 반복마다 손실 함수가 오차를 계산
i += 1
y_pred = model(categorical_train_data)
single_loss = loss_function(y_pred, train_outputs)
aggregated_losses.append(single_loss) ------ 반복할 때마다 오차를 aggregated_losses에 추가
if i%25 == 1:
print(f'epoch: {i:3} loss: {single_loss.item():10.8f}')
optimizer.zero_grad()
single_loss.backward() ------ 가중치를 업데이트하기 위해 손실 함수의 backward( ) 메서드 호출
optimizer.step() ------ 옵티마이저 함수의 step( ) 메서드를 이용하여 기울기 업데이트
print(f'epoch: {i:3} loss: {single_loss.item():10.10f}') ------ 오차가 25 에포크마다 출력