앞에서 정의해 두었던 함수를 이용하여 모델을 학습시킵니다. 이때 학습 과정 중에 생성된 이미지도 확인해 보겠습니다.

    코드 13-10 모델 학습

    import numpy as np
    
    num_epochs = 30
    history_da = {'train_loss':[],'val_loss':[]}
    loss_fn = torch.nn.MSELoss()
    
    for epoch in range(num_epochs):
        print('EPOCH %d/%d' % (epoch + 1, num_epochs))
        train_loss=train_epoch(
            encoder=encoder,
            decoder=decoder,
            device=device,
            dataloader=train_loader,
            loss_fn=loss_fn,
            optimizer=optim, noise_factor=0.3) ------ 모델 학습 함수(train_epoch)를 이용하여 모델 학습
        val_loss = test_epoch(
            encoder=encoder,
            decoder=decoder,
            device=device,
            dataloader=test_loader,
            loss_fn=loss_fn, noise_factor=0.3) ------ 모델 검증(테스트) 함수(test_epoch)를 이용하여 테스트
        history_da['train_loss'].append(train_loss)
        history_da['val_loss'].append(val_loss)
        print('\n EPOCH {}/{} \t train loss {:.3f} \t val loss {:.3f}'.format(epoch + 1, num_epochs,train_loss,val_loss))
        plot_ae_outputs(encoder, decoder, noise_factor=0.3)
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.