典型案例详解——生成对抗网络
import os
import torch
import torchvision
import torch.nn as nn
from torchvision import transforms
from torchvision.utils import save_image
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
latent_size = 64
hidden_size = 256
image_size = 784
num_epochs = 2
batch_size = 100
sample_dir = 'samples'
if not os.path.exists(sample_dir):
os.makedirs(sample_dir)
"""
建立文件夹用于存放生成的样本
exists(path):测试是否存在某路径,如不存在则建立
mkdirs(name)
"""
transform = transforms.Compose([
transforms.ToTensor(),
# transforms.Normalize(mean=(0.5,0.5,0.5),
# std=(0.5,0.5,0.5) )
])
mnist = torchvision.datasets.MNIST(root='../../data/',
train=True,
transform=transform,
download=False)
data_loader = torch.utils.data.DataLoader(dataset=mnist,
batch_size=batch_size,
shuffle=True)
D = nn.Sequential(
nn.Linear(image_size, hidden_size),
nn.LeakyReLU(0.2),
nn.Linear(hidden_size, hidden_size),
nn.LeakyReLU(