더북(TheBook)

②항은 x에서 z를 표현하는 확률밀도 함수로 인코더 네트워크와 가우시안 분포가 얼마나 유사한지 나타냅니다. 유사한 정도가 높을수록 쿨백-라이블러 발산(Kullback–Leibler Divergence, DKL)6은 낮은 값을 나타내므로, 인코더 네트워크가 가우시안 분포를 최대한 잘 표현할 수 있도록 가능도가 최대화됩니다. 따라서 ②항이 작을수록 모델 가능도가 커집니다. 다시 정리하면 ①항은 그 값이 클수록, ②항은 그 값이 작을수록 가짜 데이터를 잘 생성한다고 할 수 있습니다.

이번 예제에서는 텐서보드에서 에포크 진행에 따른 오차를 확인할 예정입니다. 따라서 다음 명령으로 텐서보드를 설치합니다. 텐서보드 사용을 위해 텐서보드 엑스(tensorboardX) 라이브러리를 설치해야 합니다.

> pip install tensorboardX

텐서보드 엑스는 학습 과정을 시각적으로 확인하고자 할 때 사용하는 도구입니다.

변형 오토인코더에서도 오토인코더에서와 마찬가지로 MNIST 데이터셋을 이용합니다. 먼저 필요한 라이브러리를 호출합니다.

코드 13-11 필요한 라이브러리 호출

import datetime
import os
from tensorboardX import SummaryWriter

import torch
import torchvision
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import Dataset, DataLoader
import matplotlib.pylab as plt

import torchvision.datasets as datasets
import torchvision.transforms as transforms

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.