시작하기무료로 시작하기

RNN을 활용한 텍스트 생성 - 학습과 생성

PyBooks 팀은 이제 RNN 모델을 학습하고 테스트해 달라고 요청했어요. 이 모델은 제공된 입력을 바탕으로 시퀀스의 다음 문자를 예측해, 도서명 자동 완성을 수행하도록 설계되어 있어요. 이 프로젝트는 텍스트 완성 모델을 고도화하는 데 도움이 될 거예요.

RNNmodel 클래스의 model 인스턴스는 미리 로드되어 있어요. data 변수는 전처리되어 시퀀스로 인코딩되었습니다.

inputstargets 변수도 미리 로드되어 있어요.

이 연습은 강의의 일부입니다

PyTorch로 배우는 텍스트 딥러닝

강의 보기

연습 안내

  • 모델의 오류를 계산할 손실 함수를 인스턴스화하세요.
  • PyTorch의 최적화 모듈에서 옵티마이저를 인스턴스화하세요.
  • 모델을 학습 모드로 설정하고, 최적화 단계를 수행하기 전에 기울기를 0으로 초기화해 학습을 실행하세요.
  • 학습이 끝나면 샘플 입력으로 테스트할 수 있도록 모델을 평가 모드로 전환하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Instantiate the loss function
criterion = nn.____()
# Instantiate the optimizer
optimizer = torch.optim.____(model.parameters(), lr=0.01)

# Train the model
for epoch in range(100):
    model.____()
    outputs = model(inputs)
    loss = criterion(outputs, targets)
    optimizer.____()
    loss.backward()
    optimizer.step()
    if (epoch+1) % 10 == 0:
        print(f'Epoch {epoch+1}/100, Loss: {loss.item()}')

# Test the model
model.____()
test_input = char_to_ix['r']
test_input = nn.functional.one_hot(torch.tensor(test_input).view(-1, 1), num_classes=len(chars)).float()
predicted_output = model(test_input)
predicted_char_ix = torch.argmax(predicted_output, 1).item()
print(f"Test Input: 'r', Predicted Output: '{ix_to_char[predicted_char_ix]}'")
코드 편집 및 실행