pytorch 오토인코더를 사용하는데, 학습과 검증 질문입니다.

안녕하세요!

pytorch로 오토인코더를 구현하였는데요,

검증과 테스트를 해야하는데, 코드를 새로 짜야 한다고 들었습니다.

그냥 기존에 만든 오토인코더로 여러번 돌려서 학습을 시키고

검증과 테스트는 1번만 오토인코더에 넣고 loss만 계산하게 하면 되는걸까요??

코드를 어떻게 짜야 하는지 모르겠습니다. ㅠ

안녕하세요, @hee910224 님.

말씀하신 검증 과정이, 모델 학습 과정에서 전체 데이터셋을 한 번 학습한 뒤(= 매 epoch 마다) 미리 떼어둔(= 모델이 학습한 적 없는) 검증 데이터를 사용하여 모델의 성능을 측정하는 과정을 말씀하시는 것일까요?

맞다면 아래 튜토리얼 링크의 train_loop()test_loop()을 참고해보시면 어떨까요?
https://tutorials.pytorch.kr/beginner/basics/optimization_tutorial.html#full-impl-label

검증 단계(test_loop())에서는 모델의 학습을 위한 것이 아니기 때문에 단순 평가(evaluation)를 위해 데이터를 추론(inference)을 위해서만 사용하는 부분을 참고해주시기 바랍니다. (= 모델의 성능을 측정하기 위해 loss만 계산하고, optimizer 또는 역전파(backpropagation)를 하지 않습니다.)

    with torch.no_grad():
        for X, y in dataloader:
            pred = model(X)
            test_loss += loss_fn(pred, y).item()
            correct += (pred.argmax(1) == y).type(torch.float).sum().item()

혹시 다른 의도로 말씀하신 것이라면 알려주시기를 부탁드립니다. :slight_smile:

안녕하세요~

감사합니다!

제 의도대로 답변해주셨습니다. ^^