모델을 훈련시키기 위해 변수 값 및 옵티마이저, 손실 함수도 지정합니다.
코드 7-70 옵티마이저와 손실 함수 지정
num_epochs = 1000
learning_rate = 0.0001
input_size = 4
hidden_size = 2
num_layers = 1 ------ GRU 계층의 개수
num_classes = 1
model = GRU(num_classes, input_size, hidden_size, num_layers, X_train_tensors_f.shape[1])
criterion = torch.nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)
준비된 데이터셋과 모델의 네트워크를 이용하여 모델을 학습시킵니다.
코드 7-71 모델 학습
for epoch in range(num_epochs):
outputs = lstm1.forward(X_train_tensors_f)
optimizer.zero_grad()
loss = criterion(outputs, y_train_tensors)
loss.backward()
optimizer.step()
if epoch % 100 == 0:
print("Epoch: %d, loss: %1.5f" % (epoch, loss.item()))