Deep Learning Models -- A collection of various deep learning architectures, models, and tips for TensorFlow and PyTorch in Jupyter Notebooks.
%load_ext watermark
%watermark -a 'Sebastian Raschka' -v -p torch
Sebastian Raschka CPython 3.6.8 IPython 7.2.0 torch 1.0.0
Implementation of a standard GAN.
import time
import numpy as np
import torch
import torch.nn.functional as F
from torchvision import datasets
from torchvision import transforms
import torch.nn as nn
from torch.utils.data import DataLoader
if torch.cuda.is_available():
torch.backends.cudnn.deterministic = True
##########################
### SETTINGS
##########################
# Device
device = torch.device("cuda:2" if torch.cuda.is_available() else "cpu")
# Hyperparameters
random_seed = 123
generator_learning_rate = 0.001
discriminator_learning_rate = 0.001
num_epochs = 100
batch_size = 128
LATENT_DIM = 100
IMG_SHAPE = (1, 28, 28)
IMG_SIZE = 1
for x in IMG_SHAPE:
IMG_SIZE *= x
##########################
### MNIST DATASET
##########################
# Note transforms.ToTensor() scales input images
# to 0-1 range
train_dataset = datasets.MNIST(root='data',
train=True,
transform=transforms.ToTensor(),
download=True)
test_dataset = datasets.MNIST(root='data',
train=False,
transform=transforms.ToTensor())
train_loader = DataLoader(dataset=train_dataset,
batch_size=batch_size,
shuffle=True)
test_loader = DataLoader(dataset=test_dataset,
batch_size=batch_size,
shuffle=False)
# Checking the dataset
for images, labels in train_loader:
print('Image batch dimensions:', images.shape)
print('Image label dimensions:', labels.shape)
break
Image batch dimensions: torch.Size([128, 1, 28, 28]) Image label dimensions: torch.Size([128])
##########################
### MODEL
##########################
class GAN(torch.nn.Module):
def __init__(self):
super(GAN, self).__init__()
self.generator = nn.Sequential(
nn.Linear(LATENT_DIM, 128),
nn.LeakyReLU(inplace=True),
nn.Dropout(p=0.5),
nn.Linear(128, IMG_SIZE),
nn.Tanh()
)
self.discriminator = nn.Sequential(
nn.Linear(IMG_SIZE, 128),
nn.LeakyReLU(inplace=True),
nn.Dropout(p=0.5),
nn.Linear(128, 1),
nn.Sigmoid()
)
def generator_forward(self, z):
img = self.generator(z)
return img
def discriminator_forward(self, img):
pred = model.discriminator(img)
return pred.view(-1)
torch.manual_seed(random_seed)
model = GAN()
model = model.to(device)
optim_gener = torch.optim.Adam(model.generator.parameters(), lr=generator_learning_rate)
optim_discr = torch.optim.Adam(model.discriminator.parameters(), lr=discriminator_learning_rate)
start_time = time.time()
discr_costs = []
gener_costs = []
for epoch in range(num_epochs):
model = model.train()
for batch_idx, (features, targets) in enumerate(train_loader):
features = (features - 0.5)*2.
features = features.view(-1, IMG_SIZE).to(device)
targets = targets.to(device)
valid = torch.ones(targets.size(0)).float().to(device)
fake = torch.zeros(targets.size(0)).float().to(device)
### FORWARD AND BACK PROP
# --------------------------
# Train Generator
# --------------------------
# Make new images
z = torch.zeros((targets.size(0), LATENT_DIM)).uniform_(-1.0, 1.0).to(device)
generated_features = model.generator_forward(z)
# Loss for fooling the discriminator
discr_pred = model.discriminator_forward(generated_features)
gener_loss = F.binary_cross_entropy(discr_pred, valid)
optim_gener.zero_grad()
gener_loss.backward()
optim_gener.step()
# --------------------------
# Train Discriminator
# --------------------------
discr_pred_real = model.discriminator_forward(features.view(-1, IMG_SIZE))
real_loss = F.binary_cross_entropy(discr_pred_real, valid)
discr_pred_fake = model.discriminator_forward(generated_features.detach())
fake_loss = F.binary_cross_entropy(discr_pred_fake, fake)
discr_loss = 0.5*(real_loss + fake_loss)
optim_discr.zero_grad()
discr_loss.backward()
optim_discr.step()
discr_costs.append(discr_loss)
gener_costs.append(gener_loss)
### LOGGING
if not batch_idx % 100:
print ('Epoch: %03d/%03d | Batch %03d/%03d | Gen/Dis Loss: %.4f/%.4f'
%(epoch+1, num_epochs, batch_idx,
len(train_loader), gener_loss, discr_loss))
print('Time elapsed: %.2f min' % ((time.time() - start_time)/60))
print('Total Training Time: %.2f min' % ((time.time() - start_time)/60))
Epoch: 001/100 | Batch 000/469 | Gen/Dis Loss: 0.6840/0.7187 Epoch: 001/100 | Batch 100/469 | Gen/Dis Loss: 4.5653/0.0418 Epoch: 001/100 | Batch 200/469 | Gen/Dis Loss: 1.8552/0.0949 Epoch: 001/100 | Batch 300/469 | Gen/Dis Loss: 1.3644/0.1683 Epoch: 001/100 | Batch 400/469 | Gen/Dis Loss: 2.5513/0.0578 Time elapsed: 0.34 min Epoch: 002/100 | Batch 000/469 | Gen/Dis Loss: 2.1382/0.1542 Epoch: 002/100 | Batch 100/469 | Gen/Dis Loss: 1.8133/0.2276 Epoch: 002/100 | Batch 200/469 | Gen/Dis Loss: 1.0152/0.4610 Epoch: 002/100 | Batch 300/469 | Gen/Dis Loss: 1.2685/0.3756 Epoch: 002/100 | Batch 400/469 | Gen/Dis Loss: 1.0637/0.4322 Time elapsed: 0.66 min Epoch: 003/100 | Batch 000/469 | Gen/Dis Loss: 0.8237/0.4880 Epoch: 003/100 | Batch 100/469 | Gen/Dis Loss: 1.1913/0.3777 Epoch: 003/100 | Batch 200/469 | Gen/Dis Loss: 1.3542/0.3576 Epoch: 003/100 | Batch 300/469 | Gen/Dis Loss: 1.7944/0.3458 Epoch: 003/100 | Batch 400/469 | Gen/Dis Loss: 0.7673/0.5411 Time elapsed: 1.00 min Epoch: 004/100 | Batch 000/469 | Gen/Dis Loss: 0.9829/0.4750 Epoch: 004/100 | Batch 100/469 | Gen/Dis Loss: 0.7222/0.5458 Epoch: 004/100 | Batch 200/469 | Gen/Dis Loss: 0.7310/0.5538 Epoch: 004/100 | Batch 300/469 | Gen/Dis Loss: 1.0767/0.5459 Epoch: 004/100 | Batch 400/469 | Gen/Dis Loss: 1.1510/0.4849 Time elapsed: 1.34 min Epoch: 005/100 | Batch 000/469 | Gen/Dis Loss: 1.0973/0.4719 Epoch: 005/100 | Batch 100/469 | Gen/Dis Loss: 0.7951/0.5210 Epoch: 005/100 | Batch 200/469 | Gen/Dis Loss: 0.7507/0.5123 Epoch: 005/100 | Batch 300/469 | Gen/Dis Loss: 1.0493/0.4371 Epoch: 005/100 | Batch 400/469 | Gen/Dis Loss: 1.0945/0.4556 Time elapsed: 1.67 min Epoch: 006/100 | Batch 000/469 | Gen/Dis Loss: 0.9199/0.5537 Epoch: 006/100 | Batch 100/469 | Gen/Dis Loss: 0.8388/0.5914 Epoch: 006/100 | Batch 200/469 | Gen/Dis Loss: 1.1800/0.5136 Epoch: 006/100 | Batch 300/469 | Gen/Dis Loss: 0.9946/0.5111 Epoch: 006/100 | Batch 400/469 | Gen/Dis Loss: 1.2360/0.4437 Time elapsed: 2.00 min Epoch: 007/100 | Batch 000/469 | Gen/Dis Loss: 0.8061/0.5439 Epoch: 007/100 | Batch 100/469 | Gen/Dis Loss: 1.9045/0.4171 Epoch: 007/100 | Batch 200/469 | Gen/Dis Loss: 0.8996/0.5372 Epoch: 007/100 | Batch 300/469 | Gen/Dis Loss: 1.1766/0.4841 Epoch: 007/100 | Batch 400/469 | Gen/Dis Loss: 1.2704/0.5148 Time elapsed: 2.32 min Epoch: 008/100 | Batch 000/469 | Gen/Dis Loss: 1.1567/0.5361 Epoch: 008/100 | Batch 100/469 | Gen/Dis Loss: 1.1407/0.5125 Epoch: 008/100 | Batch 200/469 | Gen/Dis Loss: 0.9516/0.4863 Epoch: 008/100 | Batch 300/469 | Gen/Dis Loss: 1.0135/0.5792 Epoch: 008/100 | Batch 400/469 | Gen/Dis Loss: 1.5229/0.4044 Time elapsed: 2.64 min Epoch: 009/100 | Batch 000/469 | Gen/Dis Loss: 1.1099/0.4153 Epoch: 009/100 | Batch 100/469 | Gen/Dis Loss: 1.1085/0.5163 Epoch: 009/100 | Batch 200/469 | Gen/Dis Loss: 1.7178/0.4965 Epoch: 009/100 | Batch 300/469 | Gen/Dis Loss: 1.1021/0.4582 Epoch: 009/100 | Batch 400/469 | Gen/Dis Loss: 0.9463/0.5443 Time elapsed: 2.96 min Epoch: 010/100 | Batch 000/469 | Gen/Dis Loss: 1.0017/0.4996 Epoch: 010/100 | Batch 100/469 | Gen/Dis Loss: 1.2635/0.5341 Epoch: 010/100 | Batch 200/469 | Gen/Dis Loss: 1.0603/0.4936 Epoch: 010/100 | Batch 300/469 | Gen/Dis Loss: 1.6911/0.4577 Epoch: 010/100 | Batch 400/469 | Gen/Dis Loss: 1.1464/0.4903 Time elapsed: 3.28 min Epoch: 011/100 | Batch 000/469 | Gen/Dis Loss: 0.9209/0.5570 Epoch: 011/100 | Batch 100/469 | Gen/Dis Loss: 1.6830/0.4554 Epoch: 011/100 | Batch 200/469 | Gen/Dis Loss: 1.4097/0.4748 Epoch: 011/100 | Batch 300/469 | Gen/Dis Loss: 0.8746/0.4929 Epoch: 011/100 | Batch 400/469 | Gen/Dis Loss: 1.2066/0.4713 Time elapsed: 3.62 min Epoch: 012/100 | Batch 000/469 | Gen/Dis Loss: 1.2052/0.5138 Epoch: 012/100 | Batch 100/469 | Gen/Dis Loss: 1.1634/0.4988 Epoch: 012/100 | Batch 200/469 | Gen/Dis Loss: 1.2664/0.5030 Epoch: 012/100 | Batch 300/469 | Gen/Dis Loss: 1.0607/0.4934 Epoch: 012/100 | Batch 400/469 | Gen/Dis Loss: 1.2109/0.4617 Time elapsed: 3.96 min Epoch: 013/100 | Batch 000/469 | Gen/Dis Loss: 1.2762/0.4913 Epoch: 013/100 | Batch 100/469 | Gen/Dis Loss: 1.4610/0.5104 Epoch: 013/100 | Batch 200/469 | Gen/Dis Loss: 1.2449/0.5263 Epoch: 013/100 | Batch 300/469 | Gen/Dis Loss: 1.4833/0.4578 Epoch: 013/100 | Batch 400/469 | Gen/Dis Loss: 0.9275/0.5474 Time elapsed: 4.27 min Epoch: 014/100 | Batch 000/469 | Gen/Dis Loss: 1.0150/0.5682 Epoch: 014/100 | Batch 100/469 | Gen/Dis Loss: 0.9510/0.5838 Epoch: 014/100 | Batch 200/469 | Gen/Dis Loss: 1.1226/0.5525 Epoch: 014/100 | Batch 300/469 | Gen/Dis Loss: 0.9471/0.5699 Epoch: 014/100 | Batch 400/469 | Gen/Dis Loss: 1.1766/0.4995 Time elapsed: 4.61 min Epoch: 015/100 | Batch 000/469 | Gen/Dis Loss: 1.0230/0.5468 Epoch: 015/100 | Batch 100/469 | Gen/Dis Loss: 1.1320/0.5018 Epoch: 015/100 | Batch 200/469 | Gen/Dis Loss: 1.1575/0.4664 Epoch: 015/100 | Batch 300/469 | Gen/Dis Loss: 0.9513/0.5549 Epoch: 015/100 | Batch 400/469 | Gen/Dis Loss: 1.2755/0.5610 Time elapsed: 4.94 min Epoch: 016/100 | Batch 000/469 | Gen/Dis Loss: 1.3175/0.4778 Epoch: 016/100 | Batch 100/469 | Gen/Dis Loss: 1.0154/0.5763 Epoch: 016/100 | Batch 200/469 | Gen/Dis Loss: 1.2173/0.5440 Epoch: 016/100 | Batch 300/469 | Gen/Dis Loss: 1.0456/0.5588 Epoch: 016/100 | Batch 400/469 | Gen/Dis Loss: 0.9994/0.5651 Time elapsed: 5.26 min Epoch: 017/100 | Batch 000/469 | Gen/Dis Loss: 1.2691/0.5545 Epoch: 017/100 | Batch 100/469 | Gen/Dis Loss: 1.1967/0.5211 Epoch: 017/100 | Batch 200/469 | Gen/Dis Loss: 1.4639/0.5007 Epoch: 017/100 | Batch 300/469 | Gen/Dis Loss: 2.0873/0.4222 Epoch: 017/100 | Batch 400/469 | Gen/Dis Loss: 1.0368/0.5508 Time elapsed: 5.58 min Epoch: 018/100 | Batch 000/469 | Gen/Dis Loss: 1.1890/0.5201 Epoch: 018/100 | Batch 100/469 | Gen/Dis Loss: 1.0334/0.5772 Epoch: 018/100 | Batch 200/469 | Gen/Dis Loss: 1.0025/0.5564 Epoch: 018/100 | Batch 300/469 | Gen/Dis Loss: 0.9041/0.5916 Epoch: 018/100 | Batch 400/469 | Gen/Dis Loss: 1.0740/0.5529 Time elapsed: 5.91 min Epoch: 019/100 | Batch 000/469 | Gen/Dis Loss: 0.9862/0.5749 Epoch: 019/100 | Batch 100/469 | Gen/Dis Loss: 0.9446/0.5723 Epoch: 019/100 | Batch 200/469 | Gen/Dis Loss: 1.0151/0.5722 Epoch: 019/100 | Batch 300/469 | Gen/Dis Loss: 1.1151/0.5656 Epoch: 019/100 | Batch 400/469 | Gen/Dis Loss: 1.7559/0.5744 Time elapsed: 6.23 min Epoch: 020/100 | Batch 000/469 | Gen/Dis Loss: 1.0507/0.5639 Epoch: 020/100 | Batch 100/469 | Gen/Dis Loss: 1.0424/0.6394 Epoch: 020/100 | Batch 200/469 | Gen/Dis Loss: 1.1046/0.5804 Epoch: 020/100 | Batch 300/469 | Gen/Dis Loss: 0.9150/0.5456 Epoch: 020/100 | Batch 400/469 | Gen/Dis Loss: 0.9545/0.6367 Time elapsed: 6.55 min Epoch: 021/100 | Batch 000/469 | Gen/Dis Loss: 1.0178/0.5657 Epoch: 021/100 | Batch 100/469 | Gen/Dis Loss: 0.8424/0.6332 Epoch: 021/100 | Batch 200/469 | Gen/Dis Loss: 0.9367/0.5423 Epoch: 021/100 | Batch 300/469 | Gen/Dis Loss: 1.0304/0.6369 Epoch: 021/100 | Batch 400/469 | Gen/Dis Loss: 0.8230/0.6324 Time elapsed: 6.87 min Epoch: 022/100 | Batch 000/469 | Gen/Dis Loss: 1.0053/0.5809 Epoch: 022/100 | Batch 100/469 | Gen/Dis Loss: 1.0413/0.5686 Epoch: 022/100 | Batch 200/469 | Gen/Dis Loss: 1.1675/0.5649 Epoch: 022/100 | Batch 300/469 | Gen/Dis Loss: 1.1626/0.5896 Epoch: 022/100 | Batch 400/469 | Gen/Dis Loss: 0.9832/0.5411 Time elapsed: 7.21 min Epoch: 023/100 | Batch 000/469 | Gen/Dis Loss: 0.8595/0.5802 Epoch: 023/100 | Batch 100/469 | Gen/Dis Loss: 0.9383/0.6087 Epoch: 023/100 | Batch 200/469 | Gen/Dis Loss: 0.8724/0.5889 Epoch: 023/100 | Batch 300/469 | Gen/Dis Loss: 1.1330/0.5864 Epoch: 023/100 | Batch 400/469 | Gen/Dis Loss: 1.0185/0.5922 Time elapsed: 7.56 min Epoch: 024/100 | Batch 000/469 | Gen/Dis Loss: 1.3813/0.4815 Epoch: 024/100 | Batch 100/469 | Gen/Dis Loss: 0.9094/0.5802 Epoch: 024/100 | Batch 200/469 | Gen/Dis Loss: 0.9704/0.5763 Epoch: 024/100 | Batch 300/469 | Gen/Dis Loss: 0.8816/0.5747 Epoch: 024/100 | Batch 400/469 | Gen/Dis Loss: 1.0859/0.5688 Time elapsed: 7.88 min Epoch: 025/100 | Batch 000/469 | Gen/Dis Loss: 0.9025/0.6197 Epoch: 025/100 | Batch 100/469 | Gen/Dis Loss: 0.9933/0.6026 Epoch: 025/100 | Batch 200/469 | Gen/Dis Loss: 0.9847/0.5876 Epoch: 025/100 | Batch 300/469 | Gen/Dis Loss: 1.2214/0.6016 Epoch: 025/100 | Batch 400/469 | Gen/Dis Loss: 1.0922/0.5430 Time elapsed: 8.21 min Epoch: 026/100 | Batch 000/469 | Gen/Dis Loss: 1.0883/0.6211 Epoch: 026/100 | Batch 100/469 | Gen/Dis Loss: 1.0861/0.6215 Epoch: 026/100 | Batch 200/469 | Gen/Dis Loss: 0.9556/0.5680 Epoch: 026/100 | Batch 300/469 | Gen/Dis Loss: 0.8929/0.5826 Epoch: 026/100 | Batch 400/469 | Gen/Dis Loss: 1.1345/0.6392 Time elapsed: 8.54 min Epoch: 027/100 | Batch 000/469 | Gen/Dis Loss: 1.1850/0.6075 Epoch: 027/100 | Batch 100/469 | Gen/Dis Loss: 1.0241/0.5448 Epoch: 027/100 | Batch 200/469 | Gen/Dis Loss: 1.0992/0.5809 Epoch: 027/100 | Batch 300/469 | Gen/Dis Loss: 1.1104/0.6639 Epoch: 027/100 | Batch 400/469 | Gen/Dis Loss: 1.1786/0.5524 Time elapsed: 8.88 min Epoch: 028/100 | Batch 000/469 | Gen/Dis Loss: 0.9801/0.5434 Epoch: 028/100 | Batch 100/469 | Gen/Dis Loss: 0.9323/0.6251 Epoch: 028/100 | Batch 200/469 | Gen/Dis Loss: 1.0304/0.5421 Epoch: 028/100 | Batch 300/469 | Gen/Dis Loss: 0.8736/0.6080 Epoch: 028/100 | Batch 400/469 | Gen/Dis Loss: 0.9776/0.5976 Time elapsed: 9.21 min Epoch: 029/100 | Batch 000/469 | Gen/Dis Loss: 0.9565/0.6030 Epoch: 029/100 | Batch 100/469 | Gen/Dis Loss: 0.8315/0.6128 Epoch: 029/100 | Batch 200/469 | Gen/Dis Loss: 1.0538/0.5952 Epoch: 029/100 | Batch 300/469 | Gen/Dis Loss: 0.9743/0.5584 Epoch: 029/100 | Batch 400/469 | Gen/Dis Loss: 1.1805/0.5971 Time elapsed: 9.54 min Epoch: 030/100 | Batch 000/469 | Gen/Dis Loss: 0.9726/0.6118 Epoch: 030/100 | Batch 100/469 | Gen/Dis Loss: 1.0770/0.6107 Epoch: 030/100 | Batch 200/469 | Gen/Dis Loss: 0.9959/0.6021 Epoch: 030/100 | Batch 300/469 | Gen/Dis Loss: 0.9506/0.5945 Epoch: 030/100 | Batch 400/469 | Gen/Dis Loss: 1.0558/0.5752 Time elapsed: 9.88 min Epoch: 031/100 | Batch 000/469 | Gen/Dis Loss: 1.3542/0.5565 Epoch: 031/100 | Batch 100/469 | Gen/Dis Loss: 0.9010/0.5851 Epoch: 031/100 | Batch 200/469 | Gen/Dis Loss: 1.2038/0.6280 Epoch: 031/100 | Batch 300/469 | Gen/Dis Loss: 1.2909/0.5850 Epoch: 031/100 | Batch 400/469 | Gen/Dis Loss: 0.9105/0.6239 Time elapsed: 10.21 min Epoch: 032/100 | Batch 000/469 | Gen/Dis Loss: 0.9069/0.5876 Epoch: 032/100 | Batch 100/469 | Gen/Dis Loss: 0.9948/0.6073 Epoch: 032/100 | Batch 200/469 | Gen/Dis Loss: 0.8933/0.6262 Epoch: 032/100 | Batch 300/469 | Gen/Dis Loss: 0.8818/0.6278 Epoch: 032/100 | Batch 400/469 | Gen/Dis Loss: 1.0359/0.5568 Time elapsed: 10.54 min Epoch: 033/100 | Batch 000/469 | Gen/Dis Loss: 0.8754/0.6093 Epoch: 033/100 | Batch 100/469 | Gen/Dis Loss: 0.9417/0.5723 Epoch: 033/100 | Batch 200/469 | Gen/Dis Loss: 1.2760/0.5399 Epoch: 033/100 | Batch 300/469 | Gen/Dis Loss: 0.9101/0.6483 Epoch: 033/100 | Batch 400/469 | Gen/Dis Loss: 1.1257/0.5565 Time elapsed: 10.88 min Epoch: 034/100 | Batch 000/469 | Gen/Dis Loss: 0.8362/0.6059 Epoch: 034/100 | Batch 100/469 | Gen/Dis Loss: 1.1056/0.5824 Epoch: 034/100 | Batch 200/469 | Gen/Dis Loss: 1.0331/0.5450 Epoch: 034/100 | Batch 300/469 | Gen/Dis Loss: 0.8052/0.6274 Epoch: 034/100 | Batch 400/469 | Gen/Dis Loss: 0.7200/0.6174 Time elapsed: 11.21 min Epoch: 035/100 | Batch 000/469 | Gen/Dis Loss: 1.1204/0.5497 Epoch: 035/100 | Batch 100/469 | Gen/Dis Loss: 1.0631/0.5457 Epoch: 035/100 | Batch 200/469 | Gen/Dis Loss: 0.8305/0.6092 Epoch: 035/100 | Batch 300/469 | Gen/Dis Loss: 0.9248/0.6153 Epoch: 035/100 | Batch 400/469 | Gen/Dis Loss: 0.8636/0.6081 Time elapsed: 11.54 min Epoch: 036/100 | Batch 000/469 | Gen/Dis Loss: 0.8574/0.6130 Epoch: 036/100 | Batch 100/469 | Gen/Dis Loss: 0.7598/0.6124 Epoch: 036/100 | Batch 200/469 | Gen/Dis Loss: 0.9497/0.6086 Epoch: 036/100 | Batch 300/469 | Gen/Dis Loss: 0.7706/0.5903 Epoch: 036/100 | Batch 400/469 | Gen/Dis Loss: 1.0871/0.5830 Time elapsed: 11.87 min Epoch: 037/100 | Batch 000/469 | Gen/Dis Loss: 0.9759/0.5872 Epoch: 037/100 | Batch 100/469 | Gen/Dis Loss: 0.8353/0.6312 Epoch: 037/100 | Batch 200/469 | Gen/Dis Loss: 1.0386/0.5984 Epoch: 037/100 | Batch 300/469 | Gen/Dis Loss: 0.8270/0.6393 Epoch: 037/100 | Batch 400/469 | Gen/Dis Loss: 0.8449/0.6347 Time elapsed: 12.20 min Epoch: 038/100 | Batch 000/469 | Gen/Dis Loss: 0.8785/0.6330 Epoch: 038/100 | Batch 100/469 | Gen/Dis Loss: 1.1070/0.6260 Epoch: 038/100 | Batch 200/469 | Gen/Dis Loss: 0.8515/0.6265 Epoch: 038/100 | Batch 300/469 | Gen/Dis Loss: 1.3786/0.6464 Epoch: 038/100 | Batch 400/469 | Gen/Dis Loss: 0.8377/0.5968 Time elapsed: 12.54 min Epoch: 039/100 | Batch 000/469 | Gen/Dis Loss: 1.0116/0.6229 Epoch: 039/100 | Batch 100/469 | Gen/Dis Loss: 0.8710/0.6094 Epoch: 039/100 | Batch 200/469 | Gen/Dis Loss: 0.8696/0.6313 Epoch: 039/100 | Batch 300/469 | Gen/Dis Loss: 0.9238/0.5584 Epoch: 039/100 | Batch 400/469 | Gen/Dis Loss: 0.8970/0.5884 Time elapsed: 12.88 min Epoch: 040/100 | Batch 000/469 | Gen/Dis Loss: 0.7513/0.6290 Epoch: 040/100 | Batch 100/469 | Gen/Dis Loss: 0.8653/0.6368 Epoch: 040/100 | Batch 200/469 | Gen/Dis Loss: 0.8695/0.6221 Epoch: 040/100 | Batch 300/469 | Gen/Dis Loss: 0.8933/0.6093 Epoch: 040/100 | Batch 400/469 | Gen/Dis Loss: 0.9048/0.6254 Time elapsed: 13.20 min Epoch: 041/100 | Batch 000/469 | Gen/Dis Loss: 0.8156/0.6900 Epoch: 041/100 | Batch 100/469 | Gen/Dis Loss: 1.6826/0.6355 Epoch: 041/100 | Batch 200/469 | Gen/Dis Loss: 0.9716/0.6079 Epoch: 041/100 | Batch 300/469 | Gen/Dis Loss: 1.1645/0.5836 Epoch: 041/100 | Batch 400/469 | Gen/Dis Loss: 1.0017/0.5833 Time elapsed: 13.52 min Epoch: 042/100 | Batch 000/469 | Gen/Dis Loss: 0.8907/0.6060 Epoch: 042/100 | Batch 100/469 | Gen/Dis Loss: 0.8830/0.6369 Epoch: 042/100 | Batch 200/469 | Gen/Dis Loss: 0.8182/0.6298 Epoch: 042/100 | Batch 300/469 | Gen/Dis Loss: 0.8291/0.6427 Epoch: 042/100 | Batch 400/469 | Gen/Dis Loss: 0.8875/0.6115 Time elapsed: 13.85 min Epoch: 043/100 | Batch 000/469 | Gen/Dis Loss: 0.9703/0.5961 Epoch: 043/100 | Batch 100/469 | Gen/Dis Loss: 0.8935/0.6383 Epoch: 043/100 | Batch 200/469 | Gen/Dis Loss: 0.9997/0.5957 Epoch: 043/100 | Batch 300/469 | Gen/Dis Loss: 1.0789/0.6338 Epoch: 043/100 | Batch 400/469 | Gen/Dis Loss: 0.9160/0.6372 Time elapsed: 14.17 min Epoch: 044/100 | Batch 000/469 | Gen/Dis Loss: 0.8453/0.5959 Epoch: 044/100 | Batch 100/469 | Gen/Dis Loss: 0.9197/0.6351 Epoch: 044/100 | Batch 200/469 | Gen/Dis Loss: 0.8454/0.6329 Epoch: 044/100 | Batch 300/469 | Gen/Dis Loss: 0.9702/0.6142 Epoch: 044/100 | Batch 400/469 | Gen/Dis Loss: 0.8193/0.6374 Time elapsed: 14.51 min Epoch: 045/100 | Batch 000/469 | Gen/Dis Loss: 0.8386/0.5956 Epoch: 045/100 | Batch 100/469 | Gen/Dis Loss: 0.9686/0.6224 Epoch: 045/100 | Batch 200/469 | Gen/Dis Loss: 1.1623/0.5633 Epoch: 045/100 | Batch 300/469 | Gen/Dis Loss: 0.8464/0.6601 Epoch: 045/100 | Batch 400/469 | Gen/Dis Loss: 0.9593/0.6157 Time elapsed: 14.84 min Epoch: 046/100 | Batch 000/469 | Gen/Dis Loss: 0.7500/0.6090 Epoch: 046/100 | Batch 100/469 | Gen/Dis Loss: 0.9146/0.6030 Epoch: 046/100 | Batch 200/469 | Gen/Dis Loss: 1.0464/0.6103 Epoch: 046/100 | Batch 300/469 | Gen/Dis Loss: 0.8345/0.6603 Epoch: 046/100 | Batch 400/469 | Gen/Dis Loss: 0.8401/0.6796 Time elapsed: 15.16 min Epoch: 047/100 | Batch 000/469 | Gen/Dis Loss: 1.0640/0.6066 Epoch: 047/100 | Batch 100/469 | Gen/Dis Loss: 0.8738/0.5979 Epoch: 047/100 | Batch 200/469 | Gen/Dis Loss: 0.8716/0.6292 Epoch: 047/100 | Batch 300/469 | Gen/Dis Loss: 0.8200/0.5926 Epoch: 047/100 | Batch 400/469 | Gen/Dis Loss: 0.8194/0.6547 Time elapsed: 15.49 min Epoch: 048/100 | Batch 000/469 | Gen/Dis Loss: 1.0382/0.6361 Epoch: 048/100 | Batch 100/469 | Gen/Dis Loss: 1.2560/0.5894 Epoch: 048/100 | Batch 200/469 | Gen/Dis Loss: 0.9200/0.6016 Epoch: 048/100 | Batch 300/469 | Gen/Dis Loss: 0.8353/0.6308 Epoch: 048/100 | Batch 400/469 | Gen/Dis Loss: 1.0444/0.6147 Time elapsed: 15.82 min Epoch: 049/100 | Batch 000/469 | Gen/Dis Loss: 0.9350/0.6576 Epoch: 049/100 | Batch 100/469 | Gen/Dis Loss: 0.8670/0.6193 Epoch: 049/100 | Batch 200/469 | Gen/Dis Loss: 0.8244/0.6091 Epoch: 049/100 | Batch 300/469 | Gen/Dis Loss: 0.8193/0.6365 Epoch: 049/100 | Batch 400/469 | Gen/Dis Loss: 0.7594/0.6432 Time elapsed: 16.15 min Epoch: 050/100 | Batch 000/469 | Gen/Dis Loss: 1.1243/0.5892 Epoch: 050/100 | Batch 100/469 | Gen/Dis Loss: 1.1167/0.5817 Epoch: 050/100 | Batch 200/469 | Gen/Dis Loss: 0.8432/0.6398 Epoch: 050/100 | Batch 300/469 | Gen/Dis Loss: 0.8544/0.6260 Epoch: 050/100 | Batch 400/469 | Gen/Dis Loss: 0.8468/0.6526 Time elapsed: 16.48 min Epoch: 051/100 | Batch 000/469 | Gen/Dis Loss: 1.1169/0.6575 Epoch: 051/100 | Batch 100/469 | Gen/Dis Loss: 0.8787/0.6160 Epoch: 051/100 | Batch 200/469 | Gen/Dis Loss: 0.8586/0.6111 Epoch: 051/100 | Batch 300/469 | Gen/Dis Loss: 0.8247/0.6670 Epoch: 051/100 | Batch 400/469 | Gen/Dis Loss: 0.8248/0.6445 Time elapsed: 16.81 min Epoch: 052/100 | Batch 000/469 | Gen/Dis Loss: 0.8634/0.6250 Epoch: 052/100 | Batch 100/469 | Gen/Dis Loss: 0.7513/0.6662 Epoch: 052/100 | Batch 200/469 | Gen/Dis Loss: 0.8639/0.6511 Epoch: 052/100 | Batch 300/469 | Gen/Dis Loss: 0.8311/0.6408 Epoch: 052/100 | Batch 400/469 | Gen/Dis Loss: 0.8495/0.6189 Time elapsed: 17.14 min Epoch: 053/100 | Batch 000/469 | Gen/Dis Loss: 0.8787/0.6390 Epoch: 053/100 | Batch 100/469 | Gen/Dis Loss: 0.7394/0.6606 Epoch: 053/100 | Batch 200/469 | Gen/Dis Loss: 0.7430/0.6043 Epoch: 053/100 | Batch 300/469 | Gen/Dis Loss: 0.9093/0.6441 Epoch: 053/100 | Batch 400/469 | Gen/Dis Loss: 0.8781/0.6596 Time elapsed: 17.46 min Epoch: 054/100 | Batch 000/469 | Gen/Dis Loss: 0.8262/0.6726 Epoch: 054/100 | Batch 100/469 | Gen/Dis Loss: 0.8397/0.6483 Epoch: 054/100 | Batch 200/469 | Gen/Dis Loss: 0.8543/0.6450 Epoch: 054/100 | Batch 300/469 | Gen/Dis Loss: 0.8540/0.6404 Epoch: 054/100 | Batch 400/469 | Gen/Dis Loss: 0.8832/0.6416 Time elapsed: 17.81 min Epoch: 055/100 | Batch 000/469 | Gen/Dis Loss: 0.8807/0.6754 Epoch: 055/100 | Batch 100/469 | Gen/Dis Loss: 1.0622/0.6618 Epoch: 055/100 | Batch 200/469 | Gen/Dis Loss: 0.7789/0.6444 Epoch: 055/100 | Batch 300/469 | Gen/Dis Loss: 0.9238/0.6198 Epoch: 055/100 | Batch 400/469 | Gen/Dis Loss: 0.8936/0.6273 Time elapsed: 18.15 min Epoch: 056/100 | Batch 000/469 | Gen/Dis Loss: 0.8266/0.6256 Epoch: 056/100 | Batch 100/469 | Gen/Dis Loss: 0.7266/0.6309 Epoch: 056/100 | Batch 200/469 | Gen/Dis Loss: 0.9582/0.6389 Epoch: 056/100 | Batch 300/469 | Gen/Dis Loss: 0.9875/0.6675 Epoch: 056/100 | Batch 400/469 | Gen/Dis Loss: 0.8361/0.6403 Time elapsed: 18.47 min Epoch: 057/100 | Batch 000/469 | Gen/Dis Loss: 0.8893/0.6182 Epoch: 057/100 | Batch 100/469 | Gen/Dis Loss: 0.8226/0.6915 Epoch: 057/100 | Batch 200/469 | Gen/Dis Loss: 0.8826/0.6504 Epoch: 057/100 | Batch 300/469 | Gen/Dis Loss: 0.8746/0.6371 Epoch: 057/100 | Batch 400/469 | Gen/Dis Loss: 0.8151/0.6252 Time elapsed: 18.79 min Epoch: 058/100 | Batch 000/469 | Gen/Dis Loss: 0.8043/0.6610 Epoch: 058/100 | Batch 100/469 | Gen/Dis Loss: 0.8699/0.6551 Epoch: 058/100 | Batch 200/469 | Gen/Dis Loss: 0.9349/0.6771 Epoch: 058/100 | Batch 300/469 | Gen/Dis Loss: 0.9085/0.6367 Epoch: 058/100 | Batch 400/469 | Gen/Dis Loss: 0.7508/0.6449 Time elapsed: 19.13 min Epoch: 059/100 | Batch 000/469 | Gen/Dis Loss: 0.8304/0.6587 Epoch: 059/100 | Batch 100/469 | Gen/Dis Loss: 0.9261/0.6597 Epoch: 059/100 | Batch 200/469 | Gen/Dis Loss: 0.8069/0.6239 Epoch: 059/100 | Batch 300/469 | Gen/Dis Loss: 0.8897/0.6196 Epoch: 059/100 | Batch 400/469 | Gen/Dis Loss: 0.7658/0.6355 Time elapsed: 19.47 min Epoch: 060/100 | Batch 000/469 | Gen/Dis Loss: 0.8423/0.6347 Epoch: 060/100 | Batch 100/469 | Gen/Dis Loss: 0.8776/0.6197 Epoch: 060/100 | Batch 200/469 | Gen/Dis Loss: 0.7769/0.6467 Epoch: 060/100 | Batch 300/469 | Gen/Dis Loss: 0.8130/0.6738 Epoch: 060/100 | Batch 400/469 | Gen/Dis Loss: 1.2987/0.5990 Time elapsed: 19.79 min Epoch: 061/100 | Batch 000/469 | Gen/Dis Loss: 0.7656/0.6286 Epoch: 061/100 | Batch 100/469 | Gen/Dis Loss: 0.7893/0.6633 Epoch: 061/100 | Batch 200/469 | Gen/Dis Loss: 0.8352/0.6383 Epoch: 061/100 | Batch 300/469 | Gen/Dis Loss: 0.8038/0.6312 Epoch: 061/100 | Batch 400/469 | Gen/Dis Loss: 0.8129/0.6255 Time elapsed: 20.12 min Epoch: 062/100 | Batch 000/469 | Gen/Dis Loss: 0.7961/0.6222 Epoch: 062/100 | Batch 100/469 | Gen/Dis Loss: 0.7905/0.6677 Epoch: 062/100 | Batch 200/469 | Gen/Dis Loss: 0.8841/0.6281 Epoch: 062/100 | Batch 300/469 | Gen/Dis Loss: 0.7918/0.6537 Epoch: 062/100 | Batch 400/469 | Gen/Dis Loss: 0.7647/0.6391 Time elapsed: 20.45 min Epoch: 063/100 | Batch 000/469 | Gen/Dis Loss: 0.9213/0.6316 Epoch: 063/100 | Batch 100/469 | Gen/Dis Loss: 0.8297/0.6621 Epoch: 063/100 | Batch 200/469 | Gen/Dis Loss: 0.7627/0.6687 Epoch: 063/100 | Batch 300/469 | Gen/Dis Loss: 0.8490/0.6208 Epoch: 063/100 | Batch 400/469 | Gen/Dis Loss: 0.8167/0.6312 Time elapsed: 20.77 min Epoch: 064/100 | Batch 000/469 | Gen/Dis Loss: 0.8828/0.6541 Epoch: 064/100 | Batch 100/469 | Gen/Dis Loss: 0.8488/0.6540 Epoch: 064/100 | Batch 200/469 | Gen/Dis Loss: 0.8102/0.6532 Epoch: 064/100 | Batch 300/469 | Gen/Dis Loss: 0.9335/0.6742 Epoch: 064/100 | Batch 400/469 | Gen/Dis Loss: 0.8492/0.6597 Time elapsed: 21.09 min Epoch: 065/100 | Batch 000/469 | Gen/Dis Loss: 0.9883/0.6166 Epoch: 065/100 | Batch 100/469 | Gen/Dis Loss: 0.8081/0.6414 Epoch: 065/100 | Batch 200/469 | Gen/Dis Loss: 0.9112/0.6121 Epoch: 065/100 | Batch 300/469 | Gen/Dis Loss: 0.8161/0.6545 Epoch: 065/100 | Batch 400/469 | Gen/Dis Loss: 0.7722/0.6494 Time elapsed: 21.43 min Epoch: 066/100 | Batch 000/469 | Gen/Dis Loss: 1.1144/0.6265 Epoch: 066/100 | Batch 100/469 | Gen/Dis Loss: 0.9142/0.6447 Epoch: 066/100 | Batch 200/469 | Gen/Dis Loss: 0.7862/0.6520 Epoch: 066/100 | Batch 300/469 | Gen/Dis Loss: 0.9425/0.6801 Epoch: 066/100 | Batch 400/469 | Gen/Dis Loss: 0.8772/0.5920 Time elapsed: 21.77 min Epoch: 067/100 | Batch 000/469 | Gen/Dis Loss: 0.8104/0.6160 Epoch: 067/100 | Batch 100/469 | Gen/Dis Loss: 0.7382/0.6327 Epoch: 067/100 | Batch 200/469 | Gen/Dis Loss: 0.7860/0.6501 Epoch: 067/100 | Batch 300/469 | Gen/Dis Loss: 0.9281/0.6206 Epoch: 067/100 | Batch 400/469 | Gen/Dis Loss: 0.8101/0.6815 Time elapsed: 22.10 min Epoch: 068/100 | Batch 000/469 | Gen/Dis Loss: 0.9310/0.6156 Epoch: 068/100 | Batch 100/469 | Gen/Dis Loss: 0.8572/0.6361 Epoch: 068/100 | Batch 200/469 | Gen/Dis Loss: 0.7960/0.6109 Epoch: 068/100 | Batch 300/469 | Gen/Dis Loss: 0.8748/0.6433 Epoch: 068/100 | Batch 400/469 | Gen/Dis Loss: 0.7151/0.6345 Time elapsed: 22.43 min Epoch: 069/100 | Batch 000/469 | Gen/Dis Loss: 0.9562/0.6399 Epoch: 069/100 | Batch 100/469 | Gen/Dis Loss: 0.9509/0.6178 Epoch: 069/100 | Batch 200/469 | Gen/Dis Loss: 0.7511/0.6464 Epoch: 069/100 | Batch 300/469 | Gen/Dis Loss: 0.8760/0.6459 Epoch: 069/100 | Batch 400/469 | Gen/Dis Loss: 0.8780/0.6006 Time elapsed: 22.76 min Epoch: 070/100 | Batch 000/469 | Gen/Dis Loss: 0.8984/0.6479 Epoch: 070/100 | Batch 100/469 | Gen/Dis Loss: 0.7896/0.6602 Epoch: 070/100 | Batch 200/469 | Gen/Dis Loss: 0.9184/0.6249 Epoch: 070/100 | Batch 300/469 | Gen/Dis Loss: 0.7650/0.6631 Epoch: 070/100 | Batch 400/469 | Gen/Dis Loss: 0.8468/0.6639 Time elapsed: 23.09 min Epoch: 071/100 | Batch 000/469 | Gen/Dis Loss: 0.9176/0.6297 Epoch: 071/100 | Batch 100/469 | Gen/Dis Loss: 0.9179/0.6214 Epoch: 071/100 | Batch 200/469 | Gen/Dis Loss: 0.8695/0.5816 Epoch: 071/100 | Batch 300/469 | Gen/Dis Loss: 0.9253/0.6614 Epoch: 071/100 | Batch 400/469 | Gen/Dis Loss: 0.8964/0.6019 Time elapsed: 23.42 min Epoch: 072/100 | Batch 000/469 | Gen/Dis Loss: 0.8582/0.6613 Epoch: 072/100 | Batch 100/469 | Gen/Dis Loss: 0.8015/0.6448 Epoch: 072/100 | Batch 200/469 | Gen/Dis Loss: 0.6486/0.6561 Epoch: 072/100 | Batch 300/469 | Gen/Dis Loss: 0.8569/0.6524 Epoch: 072/100 | Batch 400/469 | Gen/Dis Loss: 0.8845/0.6389 Time elapsed: 23.74 min Epoch: 073/100 | Batch 000/469 | Gen/Dis Loss: 0.8141/0.6423 Epoch: 073/100 | Batch 100/469 | Gen/Dis Loss: 0.8862/0.6540 Epoch: 073/100 | Batch 200/469 | Gen/Dis Loss: 0.7776/0.6417 Epoch: 073/100 | Batch 300/469 | Gen/Dis Loss: 0.8549/0.6078 Epoch: 073/100 | Batch 400/469 | Gen/Dis Loss: 0.8241/0.6715 Time elapsed: 24.07 min Epoch: 074/100 | Batch 000/469 | Gen/Dis Loss: 0.8562/0.6573 Epoch: 074/100 | Batch 100/469 | Gen/Dis Loss: 0.9498/0.5789 Epoch: 074/100 | Batch 200/469 | Gen/Dis Loss: 0.7352/0.6670 Epoch: 074/100 | Batch 300/469 | Gen/Dis Loss: 0.8090/0.6209 Epoch: 074/100 | Batch 400/469 | Gen/Dis Loss: 0.8586/0.6445 Time elapsed: 24.40 min Epoch: 075/100 | Batch 000/469 | Gen/Dis Loss: 0.8233/0.6546 Epoch: 075/100 | Batch 100/469 | Gen/Dis Loss: 0.9612/0.6318 Epoch: 075/100 | Batch 200/469 | Gen/Dis Loss: 0.9021/0.6274 Epoch: 075/100 | Batch 300/469 | Gen/Dis Loss: 0.8424/0.6449 Epoch: 075/100 | Batch 400/469 | Gen/Dis Loss: 0.8922/0.6487 Time elapsed: 24.72 min Epoch: 076/100 | Batch 000/469 | Gen/Dis Loss: 0.8978/0.6371 Epoch: 076/100 | Batch 100/469 | Gen/Dis Loss: 0.8162/0.6275 Epoch: 076/100 | Batch 200/469 | Gen/Dis Loss: 0.7811/0.5938 Epoch: 076/100 | Batch 300/469 | Gen/Dis Loss: 0.7602/0.6409 Epoch: 076/100 | Batch 400/469 | Gen/Dis Loss: 0.8538/0.6157 Time elapsed: 25.06 min Epoch: 077/100 | Batch 000/469 | Gen/Dis Loss: 0.9253/0.6234 Epoch: 077/100 | Batch 100/469 | Gen/Dis Loss: 0.8326/0.6352 Epoch: 077/100 | Batch 200/469 | Gen/Dis Loss: 0.8831/0.6306 Epoch: 077/100 | Batch 300/469 | Gen/Dis Loss: 0.9677/0.6187 Epoch: 077/100 | Batch 400/469 | Gen/Dis Loss: 0.7626/0.6541 Time elapsed: 25.40 min Epoch: 078/100 | Batch 000/469 | Gen/Dis Loss: 0.8180/0.6464 Epoch: 078/100 | Batch 100/469 | Gen/Dis Loss: 0.8250/0.6614 Epoch: 078/100 | Batch 200/469 | Gen/Dis Loss: 0.7809/0.6596 Epoch: 078/100 | Batch 300/469 | Gen/Dis Loss: 0.8908/0.6529 Epoch: 078/100 | Batch 400/469 | Gen/Dis Loss: 0.9106/0.5921 Time elapsed: 25.71 min Epoch: 079/100 | Batch 000/469 | Gen/Dis Loss: 0.7413/0.6357 Epoch: 079/100 | Batch 100/469 | Gen/Dis Loss: 0.9426/0.6542 Epoch: 079/100 | Batch 200/469 | Gen/Dis Loss: 0.7310/0.6614 Epoch: 079/100 | Batch 300/469 | Gen/Dis Loss: 0.8052/0.6333 Epoch: 079/100 | Batch 400/469 | Gen/Dis Loss: 0.8847/0.6163 Time elapsed: 26.03 min Epoch: 080/100 | Batch 000/469 | Gen/Dis Loss: 0.8031/0.6091 Epoch: 080/100 | Batch 100/469 | Gen/Dis Loss: 0.7836/0.6816 Epoch: 080/100 | Batch 200/469 | Gen/Dis Loss: 0.8071/0.6535 Epoch: 080/100 | Batch 300/469 | Gen/Dis Loss: 0.7776/0.6370 Epoch: 080/100 | Batch 400/469 | Gen/Dis Loss: 0.9356/0.6750 Time elapsed: 26.36 min Epoch: 081/100 | Batch 000/469 | Gen/Dis Loss: 0.8445/0.6093 Epoch: 081/100 | Batch 100/469 | Gen/Dis Loss: 0.8387/0.6331 Epoch: 081/100 | Batch 200/469 | Gen/Dis Loss: 0.8961/0.6645 Epoch: 081/100 | Batch 300/469 | Gen/Dis Loss: 0.7370/0.6399 Epoch: 081/100 | Batch 400/469 | Gen/Dis Loss: 0.8485/0.6403 Time elapsed: 26.68 min Epoch: 082/100 | Batch 000/469 | Gen/Dis Loss: 0.9880/0.6108 Epoch: 082/100 | Batch 100/469 | Gen/Dis Loss: 0.8161/0.6442 Epoch: 082/100 | Batch 200/469 | Gen/Dis Loss: 0.7552/0.6458 Epoch: 082/100 | Batch 300/469 | Gen/Dis Loss: 1.0909/0.6478 Epoch: 082/100 | Batch 400/469 | Gen/Dis Loss: 0.7957/0.6312 Time elapsed: 27.00 min Epoch: 083/100 | Batch 000/469 | Gen/Dis Loss: 0.9428/0.6490 Epoch: 083/100 | Batch 100/469 | Gen/Dis Loss: 0.8881/0.6561 Epoch: 083/100 | Batch 200/469 | Gen/Dis Loss: 0.9819/0.6062 Epoch: 083/100 | Batch 300/469 | Gen/Dis Loss: 0.7503/0.6573 Epoch: 083/100 | Batch 400/469 | Gen/Dis Loss: 0.8471/0.6103 Time elapsed: 27.32 min Epoch: 084/100 | Batch 000/469 | Gen/Dis Loss: 0.8649/0.6038 Epoch: 084/100 | Batch 100/469 | Gen/Dis Loss: 0.8929/0.6797 Epoch: 084/100 | Batch 200/469 | Gen/Dis Loss: 0.8298/0.6387 Epoch: 084/100 | Batch 300/469 | Gen/Dis Loss: 0.7430/0.6482 Epoch: 084/100 | Batch 400/469 | Gen/Dis Loss: 0.9054/0.6606 Time elapsed: 27.65 min Epoch: 085/100 | Batch 000/469 | Gen/Dis Loss: 0.8955/0.6492 Epoch: 085/100 | Batch 100/469 | Gen/Dis Loss: 0.9057/0.6677 Epoch: 085/100 | Batch 200/469 | Gen/Dis Loss: 0.8066/0.6672 Epoch: 085/100 | Batch 300/469 | Gen/Dis Loss: 0.8405/0.6186 Epoch: 085/100 | Batch 400/469 | Gen/Dis Loss: 0.7902/0.6566 Time elapsed: 27.97 min Epoch: 086/100 | Batch 000/469 | Gen/Dis Loss: 0.8329/0.6380 Epoch: 086/100 | Batch 100/469 | Gen/Dis Loss: 0.7943/0.6351 Epoch: 086/100 | Batch 200/469 | Gen/Dis Loss: 0.8267/0.6181 Epoch: 086/100 | Batch 300/469 | Gen/Dis Loss: 0.8134/0.6201 Epoch: 086/100 | Batch 400/469 | Gen/Dis Loss: 0.7792/0.6261 Time elapsed: 28.29 min Epoch: 087/100 | Batch 000/469 | Gen/Dis Loss: 0.7690/0.6724 Epoch: 087/100 | Batch 100/469 | Gen/Dis Loss: 0.8583/0.6380 Epoch: 087/100 | Batch 200/469 | Gen/Dis Loss: 0.8866/0.6587 Epoch: 087/100 | Batch 300/469 | Gen/Dis Loss: 0.8352/0.6150 Epoch: 087/100 | Batch 400/469 | Gen/Dis Loss: 0.8467/0.6394 Time elapsed: 28.63 min Epoch: 088/100 | Batch 000/469 | Gen/Dis Loss: 1.0191/0.6406 Epoch: 088/100 | Batch 100/469 | Gen/Dis Loss: 0.8610/0.6540 Epoch: 088/100 | Batch 200/469 | Gen/Dis Loss: 0.8660/0.6474 Epoch: 088/100 | Batch 300/469 | Gen/Dis Loss: 0.9056/0.6660 Epoch: 088/100 | Batch 400/469 | Gen/Dis Loss: 0.9242/0.6643 Time elapsed: 28.96 min Epoch: 089/100 | Batch 000/469 | Gen/Dis Loss: 0.7956/0.6340 Epoch: 089/100 | Batch 100/469 | Gen/Dis Loss: 0.9198/0.6242 Epoch: 089/100 | Batch 200/469 | Gen/Dis Loss: 0.7616/0.6380 Epoch: 089/100 | Batch 300/469 | Gen/Dis Loss: 0.8863/0.5965 Epoch: 089/100 | Batch 400/469 | Gen/Dis Loss: 0.7759/0.6827 Time elapsed: 29.29 min Epoch: 090/100 | Batch 000/469 | Gen/Dis Loss: 0.8185/0.6479 Epoch: 090/100 | Batch 100/469 | Gen/Dis Loss: 0.8872/0.6186 Epoch: 090/100 | Batch 200/469 | Gen/Dis Loss: 0.7187/0.6278 Epoch: 090/100 | Batch 300/469 | Gen/Dis Loss: 0.8923/0.6281 Epoch: 090/100 | Batch 400/469 | Gen/Dis Loss: 0.9982/0.6463 Time elapsed: 29.61 min Epoch: 091/100 | Batch 000/469 | Gen/Dis Loss: 0.7918/0.6309 Epoch: 091/100 | Batch 100/469 | Gen/Dis Loss: 0.8389/0.6199 Epoch: 091/100 | Batch 200/469 | Gen/Dis Loss: 0.8410/0.6529 Epoch: 091/100 | Batch 300/469 | Gen/Dis Loss: 0.8419/0.6403 Epoch: 091/100 | Batch 400/469 | Gen/Dis Loss: 0.9572/0.6225 Time elapsed: 29.93 min Epoch: 092/100 | Batch 000/469 | Gen/Dis Loss: 0.7799/0.6296 Epoch: 092/100 | Batch 100/469 | Gen/Dis Loss: 0.8062/0.6253 Epoch: 092/100 | Batch 200/469 | Gen/Dis Loss: 0.8968/0.5927 Epoch: 092/100 | Batch 300/469 | Gen/Dis Loss: 0.8659/0.6430 Epoch: 092/100 | Batch 400/469 | Gen/Dis Loss: 0.8538/0.6428 Time elapsed: 30.25 min Epoch: 093/100 | Batch 000/469 | Gen/Dis Loss: 0.8086/0.6581 Epoch: 093/100 | Batch 100/469 | Gen/Dis Loss: 0.8352/0.6173 Epoch: 093/100 | Batch 200/469 | Gen/Dis Loss: 0.8675/0.6440 Epoch: 093/100 | Batch 300/469 | Gen/Dis Loss: 0.8280/0.6301 Epoch: 093/100 | Batch 400/469 | Gen/Dis Loss: 0.7901/0.6401 Time elapsed: 30.58 min Epoch: 094/100 | Batch 000/469 | Gen/Dis Loss: 0.8181/0.6240 Epoch: 094/100 | Batch 100/469 | Gen/Dis Loss: 0.7925/0.6491 Epoch: 094/100 | Batch 200/469 | Gen/Dis Loss: 1.0735/0.6365 Epoch: 094/100 | Batch 300/469 | Gen/Dis Loss: 0.7595/0.6691 Epoch: 094/100 | Batch 400/469 | Gen/Dis Loss: 0.9616/0.6151 Time elapsed: 30.91 min Epoch: 095/100 | Batch 000/469 | Gen/Dis Loss: 0.8819/0.6103 Epoch: 095/100 | Batch 100/469 | Gen/Dis Loss: 0.8988/0.6140 Epoch: 095/100 | Batch 200/469 | Gen/Dis Loss: 0.7358/0.6849 Epoch: 095/100 | Batch 300/469 | Gen/Dis Loss: 0.8665/0.6324 Epoch: 095/100 | Batch 400/469 | Gen/Dis Loss: 0.9067/0.6512 Time elapsed: 31.24 min Epoch: 096/100 | Batch 000/469 | Gen/Dis Loss: 0.6700/0.6599 Epoch: 096/100 | Batch 100/469 | Gen/Dis Loss: 0.9485/0.6660 Epoch: 096/100 | Batch 200/469 | Gen/Dis Loss: 0.8327/0.6410 Epoch: 096/100 | Batch 300/469 | Gen/Dis Loss: 0.8570/0.6311 Epoch: 096/100 | Batch 400/469 | Gen/Dis Loss: 0.7926/0.6610 Time elapsed: 31.57 min Epoch: 097/100 | Batch 000/469 | Gen/Dis Loss: 0.8499/0.6367 Epoch: 097/100 | Batch 100/469 | Gen/Dis Loss: 0.8856/0.6605 Epoch: 097/100 | Batch 200/469 | Gen/Dis Loss: 0.8316/0.6492 Epoch: 097/100 | Batch 300/469 | Gen/Dis Loss: 0.8009/0.6381 Epoch: 097/100 | Batch 400/469 | Gen/Dis Loss: 0.7995/0.6290 Time elapsed: 31.89 min Epoch: 098/100 | Batch 000/469 | Gen/Dis Loss: 0.8702/0.6647 Epoch: 098/100 | Batch 100/469 | Gen/Dis Loss: 0.8847/0.6373 Epoch: 098/100 | Batch 200/469 | Gen/Dis Loss: 0.8239/0.6928 Epoch: 098/100 | Batch 300/469 | Gen/Dis Loss: 0.8464/0.6540 Epoch: 098/100 | Batch 400/469 | Gen/Dis Loss: 0.8663/0.6176 Time elapsed: 32.23 min Epoch: 099/100 | Batch 000/469 | Gen/Dis Loss: 0.8692/0.6472 Epoch: 099/100 | Batch 100/469 | Gen/Dis Loss: 0.8241/0.6173 Epoch: 099/100 | Batch 200/469 | Gen/Dis Loss: 0.7245/0.6744 Epoch: 099/100 | Batch 300/469 | Gen/Dis Loss: 0.8388/0.6572 Epoch: 099/100 | Batch 400/469 | Gen/Dis Loss: 0.7375/0.6808 Time elapsed: 32.58 min Epoch: 100/100 | Batch 000/469 | Gen/Dis Loss: 0.7877/0.6469 Epoch: 100/100 | Batch 100/469 | Gen/Dis Loss: 0.7924/0.6401 Epoch: 100/100 | Batch 200/469 | Gen/Dis Loss: 0.8820/0.6435 Epoch: 100/100 | Batch 300/469 | Gen/Dis Loss: 1.0647/0.6531 Epoch: 100/100 | Batch 400/469 | Gen/Dis Loss: 0.9339/0.6605 Time elapsed: 32.89 min Total Training Time: 32.89 min
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot(range(len(gener_costs)), gener_costs, label='generator loss')
plt.plot(range(len(discr_costs)), discr_costs, label='discriminator loss')
plt.legend()
plt.show()
##########################
### VISUALIZATION
##########################
model.eval()
# Make new images
z = torch.zeros((5, LATENT_DIM)).uniform_(-1.0, 1.0).to(device)
generated_features = model.generator_forward(z)
imgs = generated_features.view(-1, 28, 28)
fig, axes = plt.subplots(nrows=1, ncols=5, figsize=(20, 2.5))
for i, ax in enumerate(axes):
axes[i].imshow(imgs[i].to(torch.device('cpu')).detach(), cmap='binary')