{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Vanilla GAN for MNIST (PyTorch)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "vannila_gan.ipynb で うまく行かなかった(Dが0に収束してしまう)ので、以下の改善を行う。\n", "- ReLU の 代わりにLeakyReLUを使う。\n", "- BatchNormalizationを使う。\n", "- Adam の 学習率を小さくする。\n", "- ノイズは正規分布からサンプリングする。\n", "- ネットワークのニューロン数を変更する。\n", "\n", "参考:\n", "- [soumith/ganhacks: starter from \"How to Train a GAN?\" at NIPS2016](https://github.com/soumith/ganhacks)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "% matplotlib inline\n", "import torch\n", "import torch.optim as optim\n", "import torch.nn as nn\n", "import torch.nn.functional as F\n", "from torch.autograd import Variable\n", "\n", "if torch.cuda.is_available():\n", " import torch.cuda as t\n", "else:\n", " import torch as t\n", "\n", "from torchvision import datasets, models, transforms, utils\n", "import torchvision.utils as vutils\n", "\n", "import numpy as np\n", "from numpy.random import normal\n", "import matplotlib.pyplot as plt\n", "import os" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## mnist datasetの準備" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "bs = 100" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "dataloader = torch.utils.data.DataLoader(\n", " datasets.MNIST('data/mnist', train=True, download=True,\n", " transform=transforms.Compose([\n", " transforms.ToTensor()\n", " ])),\n", " batch_size=bs\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Model" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "'''Discriminater'''\n", "class netD(nn.Module):\n", " def __init__(self):\n", " super(netD, self).__init__()\n", " self.main = nn.Sequential(\n", " nn.Linear(784, 512),\n", " nn.LeakyReLU(0.2, inplace=True),\n", " nn.Linear(512, 256),\n", " nn.LeakyReLU(0.2, inplace=True),\n", " nn.Linear(256, 1),\n", " nn.Sigmoid()\n", " )\n", "\n", " def forward(self, x):\n", " x = x.view(x.size(0), 784)\n", " x = self.main(x)\n", " return x\n", "\n", "'''Generator'''\n", "class netG(nn.Module):\n", " def __init__(self):\n", " super(netG, self).__init__()\n", " self.main = nn.Sequential(\n", " nn.Linear(100, 256),\n", " nn.BatchNorm1d(256),\n", " nn.LeakyReLU(0.2, inplace=True),\n", " nn.Linear(256, 512),\n", " nn.BatchNorm1d(512),\n", " nn.LeakyReLU(0.2, inplace=True),\n", " nn.Linear(512, 1024),\n", " nn.BatchNorm1d(1024),\n", " nn.LeakyReLU(0.2, inplace=True),\n", " nn.Linear(1024, 1*28*28),\n", " nn.Sigmoid()\n", " )\n", "\n", " def forward(self, x):\n", " x = x.view(bs,100)\n", " x = self.main(x)\n", " x = x.view(-1, 1, 28, 28)\n", " return x" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "criteion = nn.BCELoss()\n", "net_D = netD()\n", "net_G = netG()\n", "\n", "if torch.cuda.is_available():\n", " D = net_D.cuda()\n", " G = net_G.cuda()\n", " criteion = criteion.cuda() " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "optimizerD = optim.Adam(net_D.parameters(), lr = 0.00005)\n", "optimizerG = optim.Adam(net_G.parameters(), lr = 0.00005)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Train" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "input = t.FloatTensor(bs, 1, 28, 28)\n", "noise = t.FloatTensor(normal(0, 1,(bs, 100, 1, 1)))\n", "fixed_noise = t.FloatTensor(bs, 100, 1, 1).normal_(0, 1)\n", "label = t.FloatTensor(bs)\n", "\n", "real_label = 1\n", "fake_label = 0\n", "\n", "input = Variable(input)\n", "label = Variable(label)\n", "noise = Variable(noise)\n", "fixed_noise = Variable(fixed_noise)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "niter = 4000" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0/4000][0/600] Loss_D: 1.3885 Loss_G: 0.7193 D(x): 0.5018 D(G(z)): 0.5029 / 0.4871\n", "[0/4000][100/600] Loss_D: 0.2039 Loss_G: 4.1782 D(x): 0.8943 D(G(z)): 0.0672 / 0.0608\n", "[0/4000][200/600] Loss_D: 0.3222 Loss_G: 3.9727 D(x): 0.8210 D(G(z)): 0.0836 / 0.0762\n", "[0/4000][300/600] Loss_D: 0.2737 Loss_G: 2.9381 D(x): 0.8235 D(G(z)): 0.0632 / 0.0626\n", "[0/4000][400/600] Loss_D: 0.1356 Loss_G: 3.3121 D(x): 0.9232 D(G(z)): 0.0521 / 0.0406\n", "[0/4000][500/600] Loss_D: 0.1118 Loss_G: 3.3953 D(x): 0.9374 D(G(z)): 0.0428 / 0.0367\n", "[1/4000][0/600] Loss_D: 0.0891 Loss_G: 3.9906 D(x): 0.9615 D(G(z)): 0.0463 / 0.0256\n", "[1/4000][100/600] Loss_D: 0.1392 Loss_G: 3.1369 D(x): 0.9465 D(G(z)): 0.0652 / 0.0549\n", "[1/4000][200/600] Loss_D: 0.1490 Loss_G: 3.5705 D(x): 0.9557 D(G(z)): 0.0707 / 0.0501\n", "[1/4000][300/600] Loss_D: 0.1450 Loss_G: 3.3625 D(x): 0.9671 D(G(z)): 0.0888 / 0.0581\n", "[1/4000][400/600] Loss_D: 0.1139 Loss_G: 3.3370 D(x): 0.9723 D(G(z)): 0.0782 / 0.0482\n", "[1/4000][500/600] Loss_D: 0.2371 Loss_G: 2.9955 D(x): 0.9235 D(G(z)): 0.0951 / 0.0676\n", "[2/4000][0/600] Loss_D: 0.2712 Loss_G: 3.1270 D(x): 0.9171 D(G(z)): 0.1225 / 0.0849\n", "[2/4000][100/600] Loss_D: 0.2722 Loss_G: 3.7160 D(x): 0.9201 D(G(z)): 0.1158 / 0.0948\n", "[2/4000][200/600] Loss_D: 0.1986 Loss_G: 4.1082 D(x): 0.9617 D(G(z)): 0.1039 / 0.0720\n", "[2/4000][300/600] Loss_D: 0.1760 Loss_G: 4.1830 D(x): 0.9602 D(G(z)): 0.0742 / 0.0570\n", "[2/4000][400/600] Loss_D: 0.3505 Loss_G: 3.7002 D(x): 0.9014 D(G(z)): 0.0894 / 0.0646\n", "[2/4000][500/600] Loss_D: 0.3939 Loss_G: 2.2979 D(x): 0.8788 D(G(z)): 0.1603 / 0.1508\n", "[3/4000][0/600] Loss_D: 0.3538 Loss_G: 2.5244 D(x): 0.8994 D(G(z)): 0.1405 / 0.1289\n", "[3/4000][100/600] Loss_D: 0.1664 Loss_G: 2.9389 D(x): 0.9714 D(G(z)): 0.1004 / 0.0886\n", "[3/4000][200/600] Loss_D: 0.2222 Loss_G: 2.9919 D(x): 0.9638 D(G(z)): 0.1059 / 0.0916\n", "[3/4000][300/600] Loss_D: 0.2514 Loss_G: 2.7258 D(x): 0.9506 D(G(z)): 0.1109 / 0.0952\n", "[3/4000][400/600] Loss_D: 0.2591 Loss_G: 2.7858 D(x): 0.9091 D(G(z)): 0.0914 / 0.0815\n", "[3/4000][500/600] Loss_D: 0.2596 Loss_G: 2.9744 D(x): 0.9055 D(G(z)): 0.0939 / 0.0962\n", "[4/4000][0/600] Loss_D: 0.2063 Loss_G: 3.2386 D(x): 0.9363 D(G(z)): 0.0815 / 0.0656\n", "[4/4000][100/600] Loss_D: 0.1462 Loss_G: 3.1894 D(x): 0.9608 D(G(z)): 0.0836 / 0.0641\n", "[4/4000][200/600] Loss_D: 0.1372 Loss_G: 3.2696 D(x): 0.9537 D(G(z)): 0.0696 / 0.0625\n", "[4/4000][300/600] Loss_D: 0.2280 Loss_G: 3.5655 D(x): 0.9383 D(G(z)): 0.0727 / 0.0615\n", "[4/4000][400/600] Loss_D: 0.2120 Loss_G: 3.4613 D(x): 0.9136 D(G(z)): 0.0694 / 0.0596\n", "[4/4000][500/600] Loss_D: 0.2006 Loss_G: 3.5587 D(x): 0.9294 D(G(z)): 0.0685 / 0.0668\n", "[5/4000][0/600] Loss_D: 0.1872 Loss_G: 4.1383 D(x): 0.9201 D(G(z)): 0.0448 / 0.0333\n", "[5/4000][100/600] Loss_D: 0.0926 Loss_G: 3.4749 D(x): 0.9769 D(G(z)): 0.0594 / 0.0451\n", "[5/4000][200/600] Loss_D: 0.1370 Loss_G: 4.0923 D(x): 0.9674 D(G(z)): 0.0683 / 0.0593\n", "[5/4000][300/600] Loss_D: 0.1363 Loss_G: 3.6710 D(x): 0.9584 D(G(z)): 0.0581 / 0.0499\n", "[5/4000][400/600] Loss_D: 0.2072 Loss_G: 4.0631 D(x): 0.9341 D(G(z)): 0.0665 / 0.0549\n", "[5/4000][500/600] Loss_D: 0.1829 Loss_G: 3.3004 D(x): 0.9182 D(G(z)): 0.0659 / 0.0635\n", "[6/4000][0/600] Loss_D: 0.1689 Loss_G: 4.0778 D(x): 0.9482 D(G(z)): 0.0543 / 0.0391\n", "[6/4000][100/600] Loss_D: 0.1177 Loss_G: 4.1545 D(x): 0.9681 D(G(z)): 0.0489 / 0.0396\n", "[6/4000][200/600] Loss_D: 0.1109 Loss_G: 4.1085 D(x): 0.9611 D(G(z)): 0.0460 / 0.0387\n", "[6/4000][300/600] Loss_D: 0.1258 Loss_G: 4.1783 D(x): 0.9515 D(G(z)): 0.0444 / 0.0341\n", "[6/4000][400/600] Loss_D: 0.1103 Loss_G: 3.8319 D(x): 0.9586 D(G(z)): 0.0526 / 0.0406\n", "[6/4000][500/600] Loss_D: 0.2525 Loss_G: 3.5775 D(x): 0.9066 D(G(z)): 0.0756 / 0.0687\n", "[7/4000][0/600] Loss_D: 0.2865 Loss_G: 4.0141 D(x): 0.8872 D(G(z)): 0.0520 / 0.0465\n", "[7/4000][100/600] Loss_D: 0.1952 Loss_G: 4.2610 D(x): 0.9499 D(G(z)): 0.0471 / 0.0412\n", "[7/4000][200/600] Loss_D: 0.1716 Loss_G: 3.5190 D(x): 0.9519 D(G(z)): 0.0786 / 0.0525\n", "[7/4000][300/600] Loss_D: 0.1748 Loss_G: 3.7782 D(x): 0.9414 D(G(z)): 0.0426 / 0.0356\n", "[7/4000][400/600] Loss_D: 0.1249 Loss_G: 3.8327 D(x): 0.9622 D(G(z)): 0.0571 / 0.0494\n", "[7/4000][500/600] Loss_D: 0.1273 Loss_G: 3.3972 D(x): 0.9455 D(G(z)): 0.0481 / 0.0446\n", "[8/4000][0/600] Loss_D: 0.1458 Loss_G: 3.9861 D(x): 0.9501 D(G(z)): 0.0469 / 0.0419\n", "[8/4000][100/600] Loss_D: 0.1197 Loss_G: 4.4349 D(x): 0.9507 D(G(z)): 0.0397 / 0.0351\n", "[8/4000][200/600] Loss_D: 0.1258 Loss_G: 4.1831 D(x): 0.9646 D(G(z)): 0.0519 / 0.0398\n", "[8/4000][300/600] Loss_D: 0.1578 Loss_G: 4.1769 D(x): 0.9509 D(G(z)): 0.0567 / 0.0403\n", "[8/4000][400/600] Loss_D: 0.1303 Loss_G: 4.0567 D(x): 0.9570 D(G(z)): 0.0530 / 0.0427\n", "[8/4000][500/600] Loss_D: 0.2715 Loss_G: 3.5448 D(x): 0.9246 D(G(z)): 0.0762 / 0.0803\n", "[9/4000][0/600] Loss_D: 0.2412 Loss_G: 4.7126 D(x): 0.9081 D(G(z)): 0.0354 / 0.0330\n", "[9/4000][100/600] Loss_D: 0.2192 Loss_G: 4.2275 D(x): 0.9219 D(G(z)): 0.0290 / 0.0309\n", "[9/4000][200/600] Loss_D: 0.1545 Loss_G: 4.0230 D(x): 0.9366 D(G(z)): 0.0461 / 0.0353\n", "[9/4000][300/600] Loss_D: 0.1920 Loss_G: 3.9555 D(x): 0.9337 D(G(z)): 0.0651 / 0.0471\n", "[9/4000][400/600] Loss_D: 0.1427 Loss_G: 4.2804 D(x): 0.9538 D(G(z)): 0.0376 / 0.0327\n", "[9/4000][500/600] Loss_D: 0.1630 Loss_G: 3.5189 D(x): 0.9534 D(G(z)): 0.0701 / 0.0590\n", "[10/4000][0/600] Loss_D: 0.2078 Loss_G: 4.5319 D(x): 0.9175 D(G(z)): 0.0244 / 0.0219\n", "[10/4000][100/600] Loss_D: 0.1414 Loss_G: 4.3631 D(x): 0.9310 D(G(z)): 0.0305 / 0.0286\n", "[10/4000][200/600] Loss_D: 0.1640 Loss_G: 4.1148 D(x): 0.9443 D(G(z)): 0.0454 / 0.0344\n", "[10/4000][300/600] Loss_D: 0.1529 Loss_G: 3.9637 D(x): 0.9522 D(G(z)): 0.0508 / 0.0428\n", "[10/4000][400/600] Loss_D: 0.1110 Loss_G: 3.8258 D(x): 0.9714 D(G(z)): 0.0523 / 0.0432\n", "[10/4000][500/600] Loss_D: 0.1774 Loss_G: 3.7332 D(x): 0.9310 D(G(z)): 0.0478 / 0.0520\n", "[11/4000][0/600] Loss_D: 0.2576 Loss_G: 4.1064 D(x): 0.9148 D(G(z)): 0.0321 / 0.0376\n", "[11/4000][100/600] Loss_D: 0.1720 Loss_G: 4.6965 D(x): 0.9319 D(G(z)): 0.0453 / 0.0370\n", "[11/4000][200/600] Loss_D: 0.1852 Loss_G: 4.8085 D(x): 0.9413 D(G(z)): 0.0477 / 0.0342\n", "[11/4000][300/600] Loss_D: 0.2178 Loss_G: 4.7535 D(x): 0.9301 D(G(z)): 0.0419 / 0.0332\n", "[11/4000][400/600] Loss_D: 0.1047 Loss_G: 4.3306 D(x): 0.9569 D(G(z)): 0.0314 / 0.0267\n", "[11/4000][500/600] Loss_D: 0.3046 Loss_G: 3.4021 D(x): 0.9160 D(G(z)): 0.0936 / 0.0899\n", "[12/4000][0/600] Loss_D: 0.2531 Loss_G: 4.7488 D(x): 0.9221 D(G(z)): 0.0402 / 0.0378\n", "[12/4000][100/600] Loss_D: 0.1239 Loss_G: 4.2564 D(x): 0.9577 D(G(z)): 0.0452 / 0.0361\n", "[12/4000][200/600] Loss_D: 0.1882 Loss_G: 4.2550 D(x): 0.9200 D(G(z)): 0.0373 / 0.0286\n", "[12/4000][300/600] Loss_D: 0.1465 Loss_G: 4.4029 D(x): 0.9436 D(G(z)): 0.0445 / 0.0345\n", "[12/4000][400/600] Loss_D: 0.1528 Loss_G: 5.1419 D(x): 0.9562 D(G(z)): 0.0408 / 0.0257\n", "[12/4000][500/600] Loss_D: 0.1873 Loss_G: 3.8282 D(x): 0.9376 D(G(z)): 0.0502 / 0.0480\n", "[13/4000][0/600] Loss_D: 0.2298 Loss_G: 4.9067 D(x): 0.9253 D(G(z)): 0.0280 / 0.0282\n", "[13/4000][100/600] Loss_D: 0.0710 Loss_G: 5.0316 D(x): 0.9749 D(G(z)): 0.0233 / 0.0190\n", "[13/4000][200/600] Loss_D: 0.0947 Loss_G: 4.3583 D(x): 0.9596 D(G(z)): 0.0381 / 0.0266\n", "[13/4000][300/600] Loss_D: 0.1968 Loss_G: 4.8715 D(x): 0.9360 D(G(z)): 0.0498 / 0.0328\n", "[13/4000][400/600] Loss_D: 0.1804 Loss_G: 4.4136 D(x): 0.9358 D(G(z)): 0.0386 / 0.0271\n", "[13/4000][500/600] Loss_D: 0.3379 Loss_G: 3.5644 D(x): 0.9285 D(G(z)): 0.0920 / 0.0958\n", "[14/4000][0/600] Loss_D: 0.1777 Loss_G: 4.7153 D(x): 0.9436 D(G(z)): 0.0356 / 0.0227\n", "[14/4000][100/600] Loss_D: 0.1163 Loss_G: 4.1540 D(x): 0.9521 D(G(z)): 0.0390 / 0.0339\n", "[14/4000][200/600] Loss_D: 0.2591 Loss_G: 5.5598 D(x): 0.9160 D(G(z)): 0.0317 / 0.0255\n", "[14/4000][300/600] Loss_D: 0.3559 Loss_G: 4.0681 D(x): 0.9081 D(G(z)): 0.0763 / 0.0606\n", "[14/4000][400/600] Loss_D: 0.3546 Loss_G: 3.6916 D(x): 0.8991 D(G(z)): 0.0591 / 0.0592\n", "[14/4000][500/600] Loss_D: 0.2818 Loss_G: 3.2939 D(x): 0.9179 D(G(z)): 0.0762 / 0.0752\n", "[15/4000][0/600] Loss_D: 0.2752 Loss_G: 4.3120 D(x): 0.9116 D(G(z)): 0.0562 / 0.0409\n", "[15/4000][100/600] Loss_D: 0.2013 Loss_G: 4.3576 D(x): 0.9291 D(G(z)): 0.0483 / 0.0391\n", "[15/4000][200/600] Loss_D: 0.2562 Loss_G: 4.7551 D(x): 0.9246 D(G(z)): 0.0572 / 0.0337\n", "[15/4000][300/600] Loss_D: 0.2374 Loss_G: 4.1621 D(x): 0.9384 D(G(z)): 0.0629 / 0.0382\n", "[15/4000][400/600] Loss_D: 0.2246 Loss_G: 4.2673 D(x): 0.9579 D(G(z)): 0.0739 / 0.0595\n", "[15/4000][500/600] Loss_D: 0.4626 Loss_G: 3.5991 D(x): 0.9029 D(G(z)): 0.0950 / 0.0830\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[16/4000][0/600] Loss_D: 0.3111 Loss_G: 4.6631 D(x): 0.9173 D(G(z)): 0.0490 / 0.0298\n", "[16/4000][100/600] Loss_D: 0.2168 Loss_G: 3.9748 D(x): 0.9185 D(G(z)): 0.0514 / 0.0434\n", "[16/4000][200/600] Loss_D: 0.2139 Loss_G: 3.4214 D(x): 0.9595 D(G(z)): 0.0956 / 0.0674\n", "[16/4000][300/600] Loss_D: 0.2179 Loss_G: 3.9391 D(x): 0.9377 D(G(z)): 0.0506 / 0.0394\n", "[16/4000][400/600] Loss_D: 0.1874 Loss_G: 4.2472 D(x): 0.9392 D(G(z)): 0.0703 / 0.0507\n", "[16/4000][500/600] Loss_D: 0.3276 Loss_G: 3.8257 D(x): 0.8834 D(G(z)): 0.0516 / 0.0435\n", "[17/4000][0/600] Loss_D: 0.3193 Loss_G: 3.6067 D(x): 0.8978 D(G(z)): 0.0738 / 0.0794\n", "[17/4000][100/600] Loss_D: 0.1693 Loss_G: 4.2673 D(x): 0.9341 D(G(z)): 0.0389 / 0.0303\n", "[17/4000][200/600] Loss_D: 0.1585 Loss_G: 3.8715 D(x): 0.9612 D(G(z)): 0.0853 / 0.0533\n", "[17/4000][300/600] Loss_D: 0.1994 Loss_G: 3.8724 D(x): 0.9556 D(G(z)): 0.0816 / 0.0594\n", "[17/4000][400/600] Loss_D: 0.1796 Loss_G: 4.1420 D(x): 0.9452 D(G(z)): 0.0425 / 0.0359\n", "[17/4000][500/600] Loss_D: 0.3352 Loss_G: 3.5258 D(x): 0.8856 D(G(z)): 0.0650 / 0.0639\n", "[18/4000][0/600] Loss_D: 0.2993 Loss_G: 3.6599 D(x): 0.8930 D(G(z)): 0.0524 / 0.0626\n", "[18/4000][100/600] Loss_D: 0.2067 Loss_G: 3.8125 D(x): 0.9401 D(G(z)): 0.0653 / 0.0549\n", "[18/4000][200/600] Loss_D: 0.2984 Loss_G: 3.4401 D(x): 0.9277 D(G(z)): 0.1147 / 0.0717\n", "[18/4000][300/600] Loss_D: 0.2328 Loss_G: 4.0425 D(x): 0.9308 D(G(z)): 0.0649 / 0.0465\n", "[18/4000][400/600] Loss_D: 0.2446 Loss_G: 4.3853 D(x): 0.9200 D(G(z)): 0.0509 / 0.0433\n", "[18/4000][500/600] Loss_D: 0.5304 Loss_G: 3.0126 D(x): 0.8619 D(G(z)): 0.0913 / 0.1037\n", "[19/4000][0/600] Loss_D: 0.2525 Loss_G: 4.2234 D(x): 0.9136 D(G(z)): 0.0461 / 0.0458\n", "[19/4000][100/600] Loss_D: 0.1537 Loss_G: 3.6100 D(x): 0.9645 D(G(z)): 0.0755 / 0.0653\n", "[19/4000][200/600] Loss_D: 0.2696 Loss_G: 3.7655 D(x): 0.9161 D(G(z)): 0.0591 / 0.0458\n", "[19/4000][300/600] Loss_D: 0.2362 Loss_G: 3.4384 D(x): 0.9392 D(G(z)): 0.0865 / 0.0669\n", "[19/4000][400/600] Loss_D: 0.2464 Loss_G: 3.6067 D(x): 0.9471 D(G(z)): 0.0912 / 0.0660\n", "[19/4000][500/600] Loss_D: 0.4628 Loss_G: 3.6507 D(x): 0.8545 D(G(z)): 0.0814 / 0.0775\n", "[20/4000][0/600] Loss_D: 0.1629 Loss_G: 4.6087 D(x): 0.9358 D(G(z)): 0.0181 / 0.0163\n", "[20/4000][100/600] Loss_D: 0.1515 Loss_G: 4.2801 D(x): 0.9527 D(G(z)): 0.0414 / 0.0419\n", "[20/4000][200/600] Loss_D: 0.3508 Loss_G: 4.1175 D(x): 0.9167 D(G(z)): 0.0879 / 0.0680\n", "[20/4000][300/600] Loss_D: 0.3195 Loss_G: 3.8492 D(x): 0.9416 D(G(z)): 0.1345 / 0.0668\n", "[20/4000][400/600] Loss_D: 0.2248 Loss_G: 3.9864 D(x): 0.9204 D(G(z)): 0.0435 / 0.0352\n", "[20/4000][500/600] Loss_D: 0.4586 Loss_G: 4.1386 D(x): 0.8336 D(G(z)): 0.0448 / 0.0434\n", "[21/4000][0/600] Loss_D: 0.3108 Loss_G: 4.1034 D(x): 0.8784 D(G(z)): 0.0665 / 0.0522\n", "[21/4000][100/600] Loss_D: 0.1553 Loss_G: 3.6249 D(x): 0.9511 D(G(z)): 0.0674 / 0.0559\n", "[21/4000][200/600] Loss_D: 0.2164 Loss_G: 3.5105 D(x): 0.9213 D(G(z)): 0.0641 / 0.0493\n", "[21/4000][300/600] Loss_D: 0.2931 Loss_G: 3.8814 D(x): 0.8858 D(G(z)): 0.0550 / 0.0433\n", "[21/4000][400/600] Loss_D: 0.3122 Loss_G: 3.0501 D(x): 0.9325 D(G(z)): 0.1283 / 0.0881\n", "[21/4000][500/600] Loss_D: 0.5186 Loss_G: 2.8425 D(x): 0.8799 D(G(z)): 0.1442 / 0.1279\n", "[22/4000][0/600] Loss_D: 0.2672 Loss_G: 4.0608 D(x): 0.9172 D(G(z)): 0.0529 / 0.0569\n", "[22/4000][100/600] Loss_D: 0.2714 Loss_G: 3.5175 D(x): 0.9327 D(G(z)): 0.0766 / 0.0647\n", "[22/4000][200/600] Loss_D: 0.3293 Loss_G: 3.2239 D(x): 0.9096 D(G(z)): 0.1155 / 0.0869\n", "[22/4000][300/600] Loss_D: 0.3881 Loss_G: 3.0671 D(x): 0.9063 D(G(z)): 0.1223 / 0.0842\n", "[22/4000][400/600] Loss_D: 0.2571 Loss_G: 4.0376 D(x): 0.9172 D(G(z)): 0.0508 / 0.0429\n", "[22/4000][500/600] Loss_D: 0.4496 Loss_G: 3.3256 D(x): 0.8475 D(G(z)): 0.0816 / 0.0797\n", "[23/4000][0/600] Loss_D: 0.3685 Loss_G: 3.7780 D(x): 0.8562 D(G(z)): 0.0592 / 0.0648\n", "[23/4000][100/600] Loss_D: 0.3512 Loss_G: 3.2319 D(x): 0.9423 D(G(z)): 0.1368 / 0.0922\n", "[23/4000][200/600] Loss_D: 0.2904 Loss_G: 3.7348 D(x): 0.9168 D(G(z)): 0.0638 / 0.0578\n", "[23/4000][300/600] Loss_D: 0.3401 Loss_G: 3.8631 D(x): 0.8895 D(G(z)): 0.0703 / 0.0537\n", "[23/4000][400/600] Loss_D: 0.3412 Loss_G: 3.3387 D(x): 0.9109 D(G(z)): 0.0909 / 0.0725\n", "[23/4000][500/600] Loss_D: 0.4790 Loss_G: 3.1724 D(x): 0.8428 D(G(z)): 0.0993 / 0.0843\n", "[24/4000][0/600] Loss_D: 0.2664 Loss_G: 3.1316 D(x): 0.9112 D(G(z)): 0.0738 / 0.0830\n", "[24/4000][100/600] Loss_D: 0.2431 Loss_G: 3.5844 D(x): 0.9297 D(G(z)): 0.0712 / 0.0687\n", "[24/4000][200/600] Loss_D: 0.2188 Loss_G: 3.7185 D(x): 0.9392 D(G(z)): 0.0690 / 0.0525\n", "[24/4000][300/600] Loss_D: 0.2784 Loss_G: 3.7379 D(x): 0.8974 D(G(z)): 0.0636 / 0.0462\n", "[24/4000][400/600] Loss_D: 0.2626 Loss_G: 3.3592 D(x): 0.9225 D(G(z)): 0.0925 / 0.0760\n", "[24/4000][500/600] Loss_D: 0.5501 Loss_G: 3.2116 D(x): 0.8518 D(G(z)): 0.1171 / 0.1006\n", "[25/4000][0/600] Loss_D: 0.3254 Loss_G: 3.0567 D(x): 0.8994 D(G(z)): 0.1202 / 0.1016\n", "[25/4000][100/600] Loss_D: 0.3416 Loss_G: 3.2383 D(x): 0.9001 D(G(z)): 0.0866 / 0.0839\n", "[25/4000][200/600] Loss_D: 0.3489 Loss_G: 3.3327 D(x): 0.9059 D(G(z)): 0.0971 / 0.0766\n", "[25/4000][300/600] Loss_D: 0.3903 Loss_G: 3.7293 D(x): 0.9059 D(G(z)): 0.1345 / 0.0894\n", "[25/4000][400/600] Loss_D: 0.3488 Loss_G: 3.5247 D(x): 0.8811 D(G(z)): 0.0859 / 0.0755\n", "[25/4000][500/600] Loss_D: 0.5703 Loss_G: 2.8312 D(x): 0.8467 D(G(z)): 0.1355 / 0.1146\n", "[26/4000][0/600] Loss_D: 0.3349 Loss_G: 3.0121 D(x): 0.8927 D(G(z)): 0.0989 / 0.0969\n", "[26/4000][100/600] Loss_D: 0.2905 Loss_G: 3.1034 D(x): 0.9185 D(G(z)): 0.1044 / 0.0921\n", "[26/4000][200/600] Loss_D: 0.2681 Loss_G: 3.3595 D(x): 0.9303 D(G(z)): 0.0972 / 0.0765\n", "[26/4000][300/600] Loss_D: 0.2435 Loss_G: 3.6810 D(x): 0.9062 D(G(z)): 0.0617 / 0.0446\n", "[26/4000][400/600] Loss_D: 0.4153 Loss_G: 2.7159 D(x): 0.8971 D(G(z)): 0.1360 / 0.1094\n", "[26/4000][500/600] Loss_D: 0.4654 Loss_G: 2.9271 D(x): 0.8640 D(G(z)): 0.1168 / 0.1037\n", "[27/4000][0/600] Loss_D: 0.4603 Loss_G: 2.9726 D(x): 0.8576 D(G(z)): 0.0968 / 0.0978\n", "[27/4000][100/600] Loss_D: 0.2128 Loss_G: 3.4659 D(x): 0.9187 D(G(z)): 0.0720 / 0.0581\n", "[27/4000][200/600] Loss_D: 0.3047 Loss_G: 3.6047 D(x): 0.8979 D(G(z)): 0.0689 / 0.0565\n", "[27/4000][300/600] Loss_D: 0.3390 Loss_G: 3.2369 D(x): 0.8947 D(G(z)): 0.0797 / 0.0643\n", "[27/4000][400/600] Loss_D: 0.4008 Loss_G: 3.1743 D(x): 0.8817 D(G(z)): 0.1094 / 0.0873\n", "[27/4000][500/600] Loss_D: 0.5823 Loss_G: 2.7160 D(x): 0.8262 D(G(z)): 0.1475 / 0.1381\n", "[28/4000][0/600] Loss_D: 0.4098 Loss_G: 2.9511 D(x): 0.8831 D(G(z)): 0.1056 / 0.1196\n", "[28/4000][100/600] Loss_D: 0.2416 Loss_G: 3.0887 D(x): 0.9285 D(G(z)): 0.0955 / 0.0856\n", "[28/4000][200/600] Loss_D: 0.3193 Loss_G: 3.7503 D(x): 0.9047 D(G(z)): 0.0787 / 0.0560\n", "[28/4000][300/600] Loss_D: 0.3543 Loss_G: 3.3483 D(x): 0.9160 D(G(z)): 0.1244 / 0.0915\n", "[28/4000][400/600] Loss_D: 0.3479 Loss_G: 3.3682 D(x): 0.8856 D(G(z)): 0.0864 / 0.0731\n", "[28/4000][500/600] Loss_D: 0.3734 Loss_G: 3.0412 D(x): 0.8797 D(G(z)): 0.1228 / 0.1073\n", "[29/4000][0/600] Loss_D: 0.4223 Loss_G: 3.1224 D(x): 0.8473 D(G(z)): 0.0978 / 0.1093\n", "[29/4000][100/600] Loss_D: 0.3389 Loss_G: 3.2174 D(x): 0.9020 D(G(z)): 0.1137 / 0.0967\n", "[29/4000][200/600] Loss_D: 0.3523 Loss_G: 2.8876 D(x): 0.9303 D(G(z)): 0.1591 / 0.1074\n", "[29/4000][300/600] Loss_D: 0.3224 Loss_G: 3.2518 D(x): 0.9149 D(G(z)): 0.1055 / 0.0795\n", "[29/4000][400/600] Loss_D: 0.4500 Loss_G: 2.9201 D(x): 0.8767 D(G(z)): 0.1417 / 0.1212\n", "[29/4000][500/600] Loss_D: 0.5733 Loss_G: 2.9819 D(x): 0.8342 D(G(z)): 0.1219 / 0.1121\n", "[30/4000][0/600] Loss_D: 0.5039 Loss_G: 3.4335 D(x): 0.8310 D(G(z)): 0.0894 / 0.0703\n", "[30/4000][100/600] Loss_D: 0.3263 Loss_G: 2.7857 D(x): 0.8975 D(G(z)): 0.1223 / 0.1275\n", "[30/4000][200/600] Loss_D: 0.3062 Loss_G: 3.1262 D(x): 0.9070 D(G(z)): 0.1088 / 0.0862\n", "[30/4000][300/600] Loss_D: 0.4748 Loss_G: 3.3045 D(x): 0.8465 D(G(z)): 0.0973 / 0.0799\n", "[30/4000][400/600] Loss_D: 0.4836 Loss_G: 2.8173 D(x): 0.8477 D(G(z)): 0.1470 / 0.1173\n", "[30/4000][500/600] Loss_D: 0.5499 Loss_G: 3.2664 D(x): 0.7927 D(G(z)): 0.1016 / 0.0923\n", "[31/4000][0/600] Loss_D: 0.5268 Loss_G: 2.6378 D(x): 0.8453 D(G(z)): 0.1481 / 0.1407\n", "[31/4000][100/600] Loss_D: 0.4094 Loss_G: 2.9911 D(x): 0.8749 D(G(z)): 0.1248 / 0.1031\n", "[31/4000][200/600] Loss_D: 0.3267 Loss_G: 3.1047 D(x): 0.9156 D(G(z)): 0.1134 / 0.0898\n", "[31/4000][300/600] Loss_D: 0.3722 Loss_G: 2.9303 D(x): 0.8947 D(G(z)): 0.1177 / 0.0980\n", "[31/4000][400/600] Loss_D: 0.3960 Loss_G: 2.7605 D(x): 0.8711 D(G(z)): 0.1406 / 0.1156\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[31/4000][500/600] Loss_D: 0.4482 Loss_G: 3.0086 D(x): 0.8355 D(G(z)): 0.1195 / 0.1058\n", "[32/4000][0/600] Loss_D: 0.4014 Loss_G: 2.7634 D(x): 0.8808 D(G(z)): 0.1210 / 0.1173\n", "[32/4000][100/600] Loss_D: 0.4384 Loss_G: 2.5910 D(x): 0.8899 D(G(z)): 0.1768 / 0.1514\n", "[32/4000][200/600] Loss_D: 0.4307 Loss_G: 2.6906 D(x): 0.9041 D(G(z)): 0.1673 / 0.1269\n", "[32/4000][300/600] Loss_D: 0.5853 Loss_G: 2.8867 D(x): 0.8435 D(G(z)): 0.1299 / 0.1147\n", "[32/4000][400/600] Loss_D: 0.4945 Loss_G: 3.2311 D(x): 0.8245 D(G(z)): 0.0995 / 0.0867\n", "[32/4000][500/600] Loss_D: 0.4423 Loss_G: 2.5647 D(x): 0.8469 D(G(z)): 0.1418 / 0.1407\n", "[33/4000][0/600] Loss_D: 0.3679 Loss_G: 2.7405 D(x): 0.8932 D(G(z)): 0.1144 / 0.1143\n", "[33/4000][100/600] Loss_D: 0.3952 Loss_G: 3.1117 D(x): 0.8619 D(G(z)): 0.1011 / 0.0919\n", "[33/4000][200/600] Loss_D: 0.3674 Loss_G: 3.2870 D(x): 0.9140 D(G(z)): 0.1327 / 0.0875\n", "[33/4000][300/600] Loss_D: 0.4402 Loss_G: 2.7176 D(x): 0.8792 D(G(z)): 0.1466 / 0.1361\n", "[33/4000][400/600] Loss_D: 0.4532 Loss_G: 3.2229 D(x): 0.8380 D(G(z)): 0.1106 / 0.0855\n", "[33/4000][500/600] Loss_D: 0.5484 Loss_G: 2.8585 D(x): 0.8163 D(G(z)): 0.1146 / 0.1138\n", "[34/4000][0/600] Loss_D: 0.3432 Loss_G: 2.8364 D(x): 0.8923 D(G(z)): 0.1098 / 0.1112\n", "[34/4000][100/600] Loss_D: 0.3243 Loss_G: 3.0665 D(x): 0.8924 D(G(z)): 0.0920 / 0.0841\n", "[34/4000][200/600] Loss_D: 0.3949 Loss_G: 2.9613 D(x): 0.9229 D(G(z)): 0.1408 / 0.1038\n", "[34/4000][300/600] Loss_D: 0.3324 Loss_G: 3.3682 D(x): 0.8978 D(G(z)): 0.1164 / 0.0890\n", "[34/4000][400/600] Loss_D: 0.5558 Loss_G: 3.0174 D(x): 0.8005 D(G(z)): 0.1108 / 0.0943\n", "[34/4000][500/600] Loss_D: 0.3738 Loss_G: 2.9809 D(x): 0.8859 D(G(z)): 0.1301 / 0.1147\n", "[35/4000][0/600] Loss_D: 0.4338 Loss_G: 2.5555 D(x): 0.8839 D(G(z)): 0.1401 / 0.1482\n", "[35/4000][100/600] Loss_D: 0.4277 Loss_G: 3.1262 D(x): 0.8520 D(G(z)): 0.0724 / 0.0807\n", "[35/4000][200/600] Loss_D: 0.2929 Loss_G: 3.5806 D(x): 0.9279 D(G(z)): 0.0781 / 0.0562\n", "[35/4000][300/600] Loss_D: 0.3460 Loss_G: 3.1369 D(x): 0.8975 D(G(z)): 0.1254 / 0.0979\n", "[35/4000][400/600] Loss_D: 0.4706 Loss_G: 2.9849 D(x): 0.8623 D(G(z)): 0.1423 / 0.1066\n", "[35/4000][500/600] Loss_D: 0.5318 Loss_G: 2.9824 D(x): 0.8410 D(G(z)): 0.1139 / 0.1144\n", "[36/4000][0/600] Loss_D: 0.5463 Loss_G: 2.4039 D(x): 0.8375 D(G(z)): 0.1613 / 0.1645\n", "[36/4000][100/600] Loss_D: 0.4763 Loss_G: 2.7185 D(x): 0.8498 D(G(z)): 0.1226 / 0.1234\n", "[36/4000][200/600] Loss_D: 0.3315 Loss_G: 2.9743 D(x): 0.9252 D(G(z)): 0.1245 / 0.1003\n", "[36/4000][300/600] Loss_D: 0.5778 Loss_G: 2.7783 D(x): 0.8345 D(G(z)): 0.1499 / 0.1376\n", "[36/4000][400/600] Loss_D: 0.5249 Loss_G: 2.6603 D(x): 0.8384 D(G(z)): 0.1552 / 0.1247\n", "[36/4000][500/600] Loss_D: 0.5179 Loss_G: 2.7213 D(x): 0.8213 D(G(z)): 0.1152 / 0.1146\n", "[37/4000][0/600] Loss_D: 0.4311 Loss_G: 2.5007 D(x): 0.8776 D(G(z)): 0.1624 / 0.1396\n", "[37/4000][100/600] Loss_D: 0.4038 Loss_G: 2.7086 D(x): 0.8990 D(G(z)): 0.1530 / 0.1378\n", "[37/4000][200/600] Loss_D: 0.3413 Loss_G: 3.0976 D(x): 0.9072 D(G(z)): 0.1122 / 0.0898\n", "[37/4000][300/600] Loss_D: 0.4051 Loss_G: 2.9414 D(x): 0.8676 D(G(z)): 0.1231 / 0.1123\n", "[37/4000][400/600] Loss_D: 0.4972 Loss_G: 2.3394 D(x): 0.8590 D(G(z)): 0.1752 / 0.1596\n", "[37/4000][500/600] Loss_D: 0.4950 Loss_G: 2.7623 D(x): 0.8390 D(G(z)): 0.1336 / 0.1255\n", "[38/4000][0/600] Loss_D: 0.4511 Loss_G: 2.4483 D(x): 0.8846 D(G(z)): 0.1693 / 0.1627\n", "[38/4000][100/600] Loss_D: 0.3730 Loss_G: 3.0708 D(x): 0.8593 D(G(z)): 0.1084 / 0.0942\n", "[38/4000][200/600] Loss_D: 0.4048 Loss_G: 3.0875 D(x): 0.8973 D(G(z)): 0.1296 / 0.1005\n", "[38/4000][300/600] Loss_D: 0.3753 Loss_G: 2.8051 D(x): 0.8873 D(G(z)): 0.1273 / 0.1025\n", "[38/4000][400/600] Loss_D: 0.5493 Loss_G: 2.9082 D(x): 0.8469 D(G(z)): 0.1335 / 0.1083\n", "[38/4000][500/600] Loss_D: 0.5097 Loss_G: 3.0368 D(x): 0.8206 D(G(z)): 0.1103 / 0.0891\n", "[39/4000][0/600] Loss_D: 0.5992 Loss_G: 2.4516 D(x): 0.8368 D(G(z)): 0.1892 / 0.1726\n", "[39/4000][100/600] Loss_D: 0.4956 Loss_G: 2.8492 D(x): 0.8493 D(G(z)): 0.1276 / 0.1260\n", "[39/4000][200/600] Loss_D: 0.2719 Loss_G: 3.6851 D(x): 0.9090 D(G(z)): 0.0784 / 0.0481\n", "[39/4000][300/600] Loss_D: 0.3301 Loss_G: 3.1010 D(x): 0.8979 D(G(z)): 0.1155 / 0.0995\n", "[39/4000][400/600] Loss_D: 0.6371 Loss_G: 2.6012 D(x): 0.8029 D(G(z)): 0.1675 / 0.1424\n", "[39/4000][500/600] Loss_D: 0.5005 Loss_G: 2.9475 D(x): 0.8226 D(G(z)): 0.1069 / 0.0924\n", "[40/4000][0/600] Loss_D: 0.4994 Loss_G: 2.6995 D(x): 0.8618 D(G(z)): 0.1767 / 0.1571\n", "[40/4000][100/600] Loss_D: 0.3329 Loss_G: 2.8434 D(x): 0.8977 D(G(z)): 0.1348 / 0.1120\n", "[40/4000][200/600] Loss_D: 0.3004 Loss_G: 3.2682 D(x): 0.9150 D(G(z)): 0.1006 / 0.0767\n", "[40/4000][300/600] Loss_D: 0.4380 Loss_G: 2.6162 D(x): 0.8902 D(G(z)): 0.1659 / 0.1261\n", "[40/4000][400/600] Loss_D: 0.6308 Loss_G: 2.7816 D(x): 0.7711 D(G(z)): 0.1205 / 0.1282\n", "[40/4000][500/600] Loss_D: 0.6276 Loss_G: 2.8023 D(x): 0.7953 D(G(z)): 0.1251 / 0.1159\n", "[41/4000][0/600] Loss_D: 0.4051 Loss_G: 2.7135 D(x): 0.8850 D(G(z)): 0.1449 / 0.1331\n", "[41/4000][100/600] Loss_D: 0.3316 Loss_G: 2.7324 D(x): 0.8885 D(G(z)): 0.1266 / 0.1230\n", "[41/4000][200/600] Loss_D: 0.3713 Loss_G: 2.9246 D(x): 0.8849 D(G(z)): 0.1185 / 0.0993\n", "[41/4000][300/600] Loss_D: 0.4939 Loss_G: 2.7866 D(x): 0.8546 D(G(z)): 0.1538 / 0.1198\n", "[41/4000][400/600] Loss_D: 0.4108 Loss_G: 3.0407 D(x): 0.8592 D(G(z)): 0.1195 / 0.0991\n", "[41/4000][500/600] Loss_D: 0.5167 Loss_G: 3.0142 D(x): 0.8179 D(G(z)): 0.1139 / 0.1093\n", "[42/4000][0/600] Loss_D: 0.4781 Loss_G: 2.5885 D(x): 0.8528 D(G(z)): 0.1568 / 0.1389\n", "[42/4000][100/600] Loss_D: 0.3734 Loss_G: 2.6368 D(x): 0.8998 D(G(z)): 0.1550 / 0.1469\n", "[42/4000][200/600] Loss_D: 0.3057 Loss_G: 2.8751 D(x): 0.9152 D(G(z)): 0.1281 / 0.1055\n", "[42/4000][300/600] Loss_D: 0.3831 Loss_G: 2.8361 D(x): 0.8844 D(G(z)): 0.1494 / 0.1162\n", "[42/4000][400/600] Loss_D: 0.5316 Loss_G: 2.5755 D(x): 0.8594 D(G(z)): 0.1737 / 0.1616\n", "[42/4000][500/600] Loss_D: 0.4667 Loss_G: 3.1803 D(x): 0.8195 D(G(z)): 0.0851 / 0.0736\n", "[43/4000][0/600] Loss_D: 0.4168 Loss_G: 2.8234 D(x): 0.8782 D(G(z)): 0.1194 / 0.1213\n", "[43/4000][100/600] Loss_D: 0.4122 Loss_G: 2.7923 D(x): 0.8629 D(G(z)): 0.1194 / 0.1130\n", "[43/4000][200/600] Loss_D: 0.3148 Loss_G: 2.9030 D(x): 0.9227 D(G(z)): 0.1329 / 0.1075\n", "[43/4000][300/600] Loss_D: 0.3429 Loss_G: 3.1405 D(x): 0.8784 D(G(z)): 0.1133 / 0.0945\n", "[43/4000][400/600] Loss_D: 0.4876 Loss_G: 2.5807 D(x): 0.8539 D(G(z)): 0.1797 / 0.1454\n", "[43/4000][500/600] Loss_D: 0.4095 Loss_G: 2.9528 D(x): 0.8500 D(G(z)): 0.1115 / 0.1031\n", "[44/4000][0/600] Loss_D: 0.5267 Loss_G: 2.3988 D(x): 0.8696 D(G(z)): 0.2120 / 0.1939\n", "[44/4000][100/600] Loss_D: 0.4725 Loss_G: 2.8151 D(x): 0.8683 D(G(z)): 0.1364 / 0.1060\n", "[44/4000][200/600] Loss_D: 0.2462 Loss_G: 3.1103 D(x): 0.9373 D(G(z)): 0.1135 / 0.0783\n", "[44/4000][300/600] Loss_D: 0.4446 Loss_G: 2.7483 D(x): 0.8540 D(G(z)): 0.1423 / 0.1151\n", "[44/4000][400/600] Loss_D: 0.5856 Loss_G: 2.6272 D(x): 0.8211 D(G(z)): 0.1850 / 0.1472\n", "[44/4000][500/600] Loss_D: 0.5436 Loss_G: 2.6623 D(x): 0.8221 D(G(z)): 0.1265 / 0.1198\n", "[45/4000][0/600] Loss_D: 0.4744 Loss_G: 2.8802 D(x): 0.8534 D(G(z)): 0.1400 / 0.1347\n", "[45/4000][100/600] Loss_D: 0.5077 Loss_G: 2.5464 D(x): 0.8605 D(G(z)): 0.1698 / 0.1596\n", "[45/4000][200/600] Loss_D: 0.2803 Loss_G: 3.2791 D(x): 0.9104 D(G(z)): 0.0964 / 0.0752\n", "[45/4000][300/600] Loss_D: 0.3431 Loss_G: 3.1680 D(x): 0.9119 D(G(z)): 0.1306 / 0.0918\n", "[45/4000][400/600] Loss_D: 0.4404 Loss_G: 2.8032 D(x): 0.8483 D(G(z)): 0.1229 / 0.1087\n", "[45/4000][500/600] Loss_D: 0.4202 Loss_G: 3.1751 D(x): 0.8310 D(G(z)): 0.0932 / 0.0881\n", "[46/4000][0/600] Loss_D: 0.4831 Loss_G: 3.2765 D(x): 0.8410 D(G(z)): 0.0906 / 0.0879\n", "[46/4000][100/600] Loss_D: 0.3768 Loss_G: 3.0423 D(x): 0.8859 D(G(z)): 0.1081 / 0.0931\n", "[46/4000][200/600] Loss_D: 0.3640 Loss_G: 2.8558 D(x): 0.9165 D(G(z)): 0.1644 / 0.1224\n", "[46/4000][300/600] Loss_D: 0.3843 Loss_G: 2.6425 D(x): 0.9133 D(G(z)): 0.1671 / 0.1356\n", "[46/4000][400/600] Loss_D: 0.5561 Loss_G: 2.9988 D(x): 0.8377 D(G(z)): 0.1331 / 0.0983\n", "[46/4000][500/600] Loss_D: 0.5790 Loss_G: 2.5949 D(x): 0.8268 D(G(z)): 0.1501 / 0.1359\n", "[47/4000][0/600] Loss_D: 0.3835 Loss_G: 3.0077 D(x): 0.8698 D(G(z)): 0.1212 / 0.1155\n", "[47/4000][100/600] Loss_D: 0.2895 Loss_G: 2.8779 D(x): 0.8958 D(G(z)): 0.1049 / 0.1111\n", "[47/4000][200/600] Loss_D: 0.2815 Loss_G: 3.0944 D(x): 0.9168 D(G(z)): 0.1064 / 0.0803\n", "[47/4000][300/600] Loss_D: 0.3636 Loss_G: 2.6837 D(x): 0.9151 D(G(z)): 0.1636 / 0.1134\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[47/4000][400/600] Loss_D: 0.4955 Loss_G: 3.1368 D(x): 0.8299 D(G(z)): 0.1138 / 0.0966\n", "[47/4000][500/600] Loss_D: 0.7079 Loss_G: 2.6287 D(x): 0.7893 D(G(z)): 0.1397 / 0.1323\n", "[48/4000][0/600] Loss_D: 0.6683 Loss_G: 2.2204 D(x): 0.8390 D(G(z)): 0.2382 / 0.2117\n", "[48/4000][100/600] Loss_D: 0.4372 Loss_G: 2.7433 D(x): 0.8690 D(G(z)): 0.1221 / 0.1217\n", "[48/4000][200/600] Loss_D: 0.2916 Loss_G: 3.3190 D(x): 0.9116 D(G(z)): 0.1089 / 0.0736\n", "[48/4000][300/600] Loss_D: 0.4447 Loss_G: 2.5820 D(x): 0.9055 D(G(z)): 0.1916 / 0.1557\n", "[48/4000][400/600] Loss_D: 0.5110 Loss_G: 2.7817 D(x): 0.8397 D(G(z)): 0.1380 / 0.1137\n", "[48/4000][500/600] Loss_D: 0.4582 Loss_G: 2.8895 D(x): 0.8447 D(G(z)): 0.1045 / 0.1043\n", "[49/4000][0/600] Loss_D: 0.4709 Loss_G: 2.8786 D(x): 0.8617 D(G(z)): 0.1580 / 0.1431\n", "[49/4000][100/600] Loss_D: 0.3867 Loss_G: 2.6986 D(x): 0.8875 D(G(z)): 0.1357 / 0.1302\n", "[49/4000][200/600] Loss_D: 0.3329 Loss_G: 2.8842 D(x): 0.9104 D(G(z)): 0.1071 / 0.0928\n", "[49/4000][300/600] Loss_D: 0.4008 Loss_G: 2.7889 D(x): 0.9278 D(G(z)): 0.1913 / 0.1320\n", "[49/4000][400/600] Loss_D: 0.5505 Loss_G: 2.7748 D(x): 0.8434 D(G(z)): 0.1636 / 0.1269\n", "[49/4000][500/600] Loss_D: 0.6032 Loss_G: 2.6608 D(x): 0.8215 D(G(z)): 0.1530 / 0.1455\n", "[50/4000][0/600] Loss_D: 0.4192 Loss_G: 2.5626 D(x): 0.8789 D(G(z)): 0.1594 / 0.1539\n", "[50/4000][100/600] Loss_D: 0.5315 Loss_G: 2.5317 D(x): 0.8382 D(G(z)): 0.1337 / 0.1506\n", "[50/4000][200/600] Loss_D: 0.4153 Loss_G: 2.7624 D(x): 0.9104 D(G(z)): 0.1641 / 0.1292\n", "[50/4000][300/600] Loss_D: 0.4112 Loss_G: 2.6777 D(x): 0.8732 D(G(z)): 0.1621 / 0.1196\n", "[50/4000][400/600] Loss_D: 0.5856 Loss_G: 2.2897 D(x): 0.8302 D(G(z)): 0.1966 / 0.1663\n", "[50/4000][500/600] Loss_D: 0.6029 Loss_G: 2.6110 D(x): 0.7965 D(G(z)): 0.1326 / 0.1270\n", "[51/4000][0/600] Loss_D: 0.5014 Loss_G: 2.7821 D(x): 0.8339 D(G(z)): 0.1264 / 0.1217\n", "[51/4000][100/600] Loss_D: 0.4285 Loss_G: 2.5863 D(x): 0.8484 D(G(z)): 0.1290 / 0.1282\n", "[51/4000][200/600] Loss_D: 0.3343 Loss_G: 2.8013 D(x): 0.9251 D(G(z)): 0.1517 / 0.1194\n", "[51/4000][300/600] Loss_D: 0.4989 Loss_G: 2.5915 D(x): 0.8607 D(G(z)): 0.1615 / 0.1409\n", "[51/4000][400/600] Loss_D: 0.5177 Loss_G: 2.5434 D(x): 0.8347 D(G(z)): 0.1524 / 0.1368\n", "[51/4000][500/600] Loss_D: 0.6804 Loss_G: 2.4331 D(x): 0.7993 D(G(z)): 0.1755 / 0.1734\n", "[52/4000][0/600] Loss_D: 0.4769 Loss_G: 2.5695 D(x): 0.8400 D(G(z)): 0.1566 / 0.1605\n", "[52/4000][100/600] Loss_D: 0.4380 Loss_G: 2.3845 D(x): 0.8707 D(G(z)): 0.1635 / 0.1587\n", "[52/4000][200/600] Loss_D: 0.3575 Loss_G: 3.0943 D(x): 0.9170 D(G(z)): 0.1343 / 0.1148\n", "[52/4000][300/600] Loss_D: 0.5078 Loss_G: 2.6666 D(x): 0.8449 D(G(z)): 0.1639 / 0.1292\n", "[52/4000][400/600] Loss_D: 0.5052 Loss_G: 2.8452 D(x): 0.8537 D(G(z)): 0.1487 / 0.1249\n", "[52/4000][500/600] Loss_D: 0.5867 Loss_G: 2.4491 D(x): 0.8032 D(G(z)): 0.1422 / 0.1365\n", "[53/4000][0/600] Loss_D: 0.5370 Loss_G: 2.6371 D(x): 0.8428 D(G(z)): 0.1460 / 0.1451\n", "[53/4000][100/600] Loss_D: 0.3384 Loss_G: 2.7270 D(x): 0.8952 D(G(z)): 0.1353 / 0.1311\n", "[53/4000][200/600] Loss_D: 0.2745 Loss_G: 2.6709 D(x): 0.9463 D(G(z)): 0.1563 / 0.1149\n", "[53/4000][300/600] Loss_D: 0.4323 Loss_G: 2.7827 D(x): 0.8780 D(G(z)): 0.1448 / 0.1060\n", "[53/4000][400/600] Loss_D: 0.3864 Loss_G: 2.7710 D(x): 0.8600 D(G(z)): 0.1321 / 0.1160\n", "[53/4000][500/600] Loss_D: 0.6218 Loss_G: 2.7149 D(x): 0.7973 D(G(z)): 0.1312 / 0.1283\n", "[54/4000][0/600] Loss_D: 0.4716 Loss_G: 2.4027 D(x): 0.8914 D(G(z)): 0.1840 / 0.1707\n", "[54/4000][100/600] Loss_D: 0.4107 Loss_G: 2.6473 D(x): 0.8878 D(G(z)): 0.1444 / 0.1348\n", "[54/4000][200/600] Loss_D: 0.3736 Loss_G: 3.2090 D(x): 0.8903 D(G(z)): 0.1182 / 0.0912\n", "[54/4000][300/600] Loss_D: 0.3499 Loss_G: 2.7473 D(x): 0.8778 D(G(z)): 0.1410 / 0.1119\n", "[54/4000][400/600] Loss_D: 0.7468 Loss_G: 2.5224 D(x): 0.7508 D(G(z)): 0.1651 / 0.1374\n", "[54/4000][500/600] Loss_D: 0.4387 Loss_G: 2.6927 D(x): 0.8510 D(G(z)): 0.1280 / 0.1255\n", "[55/4000][0/600] Loss_D: 0.3839 Loss_G: 3.0794 D(x): 0.8721 D(G(z)): 0.1195 / 0.0938\n", "[55/4000][100/600] Loss_D: 0.4513 Loss_G: 2.7491 D(x): 0.8731 D(G(z)): 0.1329 / 0.1244\n", "[55/4000][200/600] Loss_D: 0.3906 Loss_G: 3.2697 D(x): 0.8974 D(G(z)): 0.1317 / 0.0988\n", "[55/4000][300/600] Loss_D: 0.4344 Loss_G: 2.7708 D(x): 0.8348 D(G(z)): 0.1132 / 0.0947\n", "[55/4000][400/600] Loss_D: 0.5285 Loss_G: 2.7270 D(x): 0.8164 D(G(z)): 0.1568 / 0.1299\n", "[55/4000][500/600] Loss_D: 0.7035 Loss_G: 2.4832 D(x): 0.7888 D(G(z)): 0.1646 / 0.1554\n", "[56/4000][0/600] Loss_D: 0.4560 Loss_G: 2.3785 D(x): 0.8498 D(G(z)): 0.1589 / 0.1648\n", "[56/4000][100/600] Loss_D: 0.4164 Loss_G: 2.7717 D(x): 0.8625 D(G(z)): 0.1413 / 0.1305\n", "[56/4000][200/600] Loss_D: 0.3785 Loss_G: 2.7683 D(x): 0.9039 D(G(z)): 0.1524 / 0.1146\n", "[56/4000][300/600] Loss_D: 0.4464 Loss_G: 2.6293 D(x): 0.8573 D(G(z)): 0.1483 / 0.1260\n", "[56/4000][400/600] Loss_D: 0.5761 Loss_G: 2.5211 D(x): 0.8031 D(G(z)): 0.1576 / 0.1313\n", "[56/4000][500/600] Loss_D: 0.5556 Loss_G: 2.5619 D(x): 0.8085 D(G(z)): 0.1368 / 0.1391\n", "[57/4000][0/600] Loss_D: 0.4846 Loss_G: 2.0868 D(x): 0.8394 D(G(z)): 0.1795 / 0.1836\n", "[57/4000][100/600] Loss_D: 0.4453 Loss_G: 2.4994 D(x): 0.8720 D(G(z)): 0.1552 / 0.1594\n", "[57/4000][200/600] Loss_D: 0.3214 Loss_G: 3.1942 D(x): 0.9147 D(G(z)): 0.1358 / 0.0918\n", "[57/4000][300/600] Loss_D: 0.4210 Loss_G: 2.8056 D(x): 0.8637 D(G(z)): 0.1394 / 0.1038\n", "[57/4000][400/600] Loss_D: 0.5075 Loss_G: 2.5644 D(x): 0.8390 D(G(z)): 0.1706 / 0.1380\n", "[57/4000][500/600] Loss_D: 0.5144 Loss_G: 2.4813 D(x): 0.8386 D(G(z)): 0.1508 / 0.1457\n", "[58/4000][0/600] Loss_D: 0.3796 Loss_G: 2.7099 D(x): 0.8606 D(G(z)): 0.1314 / 0.1218\n", "[58/4000][100/600] Loss_D: 0.3843 Loss_G: 2.5117 D(x): 0.8670 D(G(z)): 0.1244 / 0.1310\n", "[58/4000][200/600] Loss_D: 0.3856 Loss_G: 2.5736 D(x): 0.9060 D(G(z)): 0.1595 / 0.1264\n", "[58/4000][300/600] Loss_D: 0.4468 Loss_G: 2.5947 D(x): 0.8565 D(G(z)): 0.1595 / 0.1256\n", "[58/4000][400/600] Loss_D: 0.4774 Loss_G: 2.4471 D(x): 0.8494 D(G(z)): 0.1656 / 0.1511\n", "[58/4000][500/600] Loss_D: 0.5354 Loss_G: 2.7060 D(x): 0.8274 D(G(z)): 0.1277 / 0.1220\n", "[59/4000][0/600] Loss_D: 0.4811 Loss_G: 2.2696 D(x): 0.8514 D(G(z)): 0.1628 / 0.1689\n", "[59/4000][100/600] Loss_D: 0.4599 Loss_G: 2.6398 D(x): 0.8361 D(G(z)): 0.1415 / 0.1513\n", "[59/4000][200/600] Loss_D: 0.3088 Loss_G: 3.0505 D(x): 0.8991 D(G(z)): 0.1027 / 0.0805\n", "[59/4000][300/600] Loss_D: 0.4248 Loss_G: 2.9113 D(x): 0.8395 D(G(z)): 0.1237 / 0.0957\n", "[59/4000][400/600] Loss_D: 0.5156 Loss_G: 2.5041 D(x): 0.8500 D(G(z)): 0.1749 / 0.1491\n", "[59/4000][500/600] Loss_D: 0.6033 Loss_G: 2.7486 D(x): 0.7817 D(G(z)): 0.1219 / 0.1168\n", "[60/4000][0/600] Loss_D: 0.4207 Loss_G: 2.3002 D(x): 0.8724 D(G(z)): 0.1736 / 0.1590\n", "[60/4000][100/600] Loss_D: 0.5047 Loss_G: 2.4868 D(x): 0.8293 D(G(z)): 0.1428 / 0.1359\n", "[60/4000][200/600] Loss_D: 0.4172 Loss_G: 2.6311 D(x): 0.9043 D(G(z)): 0.1745 / 0.1316\n", "[60/4000][300/600] Loss_D: 0.4160 Loss_G: 2.6445 D(x): 0.8625 D(G(z)): 0.1577 / 0.1287\n", "[60/4000][400/600] Loss_D: 0.4780 Loss_G: 2.6649 D(x): 0.8374 D(G(z)): 0.1439 / 0.1158\n", "[60/4000][500/600] Loss_D: 0.5883 Loss_G: 2.6431 D(x): 0.7915 D(G(z)): 0.1374 / 0.1294\n", "[61/4000][0/600] Loss_D: 0.5559 Loss_G: 2.2447 D(x): 0.8449 D(G(z)): 0.2026 / 0.1767\n", "[61/4000][100/600] Loss_D: 0.4460 Loss_G: 2.4634 D(x): 0.8348 D(G(z)): 0.1420 / 0.1375\n", "[61/4000][200/600] Loss_D: 0.3675 Loss_G: 2.7177 D(x): 0.8969 D(G(z)): 0.1480 / 0.1105\n", "[61/4000][300/600] Loss_D: 0.5613 Loss_G: 2.4961 D(x): 0.8340 D(G(z)): 0.1818 / 0.1430\n", "[61/4000][400/600] Loss_D: 0.4472 Loss_G: 2.6323 D(x): 0.8529 D(G(z)): 0.1547 / 0.1190\n", "[61/4000][500/600] Loss_D: 0.5451 Loss_G: 2.6984 D(x): 0.8148 D(G(z)): 0.1348 / 0.1235\n", "[62/4000][0/600] Loss_D: 0.4845 Loss_G: 2.4751 D(x): 0.8421 D(G(z)): 0.1628 / 0.1522\n", "[62/4000][100/600] Loss_D: 0.4518 Loss_G: 2.4662 D(x): 0.8497 D(G(z)): 0.1661 / 0.1587\n", "[62/4000][200/600] Loss_D: 0.4293 Loss_G: 2.4620 D(x): 0.9162 D(G(z)): 0.1944 / 0.1366\n", "[62/4000][300/600] Loss_D: 0.5728 Loss_G: 2.6872 D(x): 0.8328 D(G(z)): 0.1630 / 0.1282\n", "[62/4000][400/600] Loss_D: 0.6135 Loss_G: 2.4372 D(x): 0.8245 D(G(z)): 0.1851 / 0.1687\n", "[62/4000][500/600] Loss_D: 0.5424 Loss_G: 2.5752 D(x): 0.8204 D(G(z)): 0.1536 / 0.1394\n", "[63/4000][0/600] Loss_D: 0.4131 Loss_G: 2.5626 D(x): 0.8624 D(G(z)): 0.1460 / 0.1316\n", "[63/4000][100/600] Loss_D: 0.5317 Loss_G: 2.4677 D(x): 0.8426 D(G(z)): 0.1705 / 0.1617\n", "[63/4000][200/600] Loss_D: 0.3494 Loss_G: 3.0092 D(x): 0.9063 D(G(z)): 0.1404 / 0.0885\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[63/4000][300/600] Loss_D: 0.5626 Loss_G: 2.9668 D(x): 0.8002 D(G(z)): 0.0988 / 0.0850\n", "[63/4000][400/600] Loss_D: 0.6127 Loss_G: 2.0733 D(x): 0.8304 D(G(z)): 0.2181 / 0.1982\n", "[63/4000][500/600] Loss_D: 0.5197 Loss_G: 2.5897 D(x): 0.8212 D(G(z)): 0.1296 / 0.1184\n", "[64/4000][0/600] Loss_D: 0.5690 Loss_G: 2.4382 D(x): 0.8150 D(G(z)): 0.1742 / 0.1559\n", "[64/4000][100/600] Loss_D: 0.5931 Loss_G: 2.2840 D(x): 0.8162 D(G(z)): 0.1916 / 0.1830\n", "[64/4000][200/600] Loss_D: 0.3738 Loss_G: 2.4284 D(x): 0.9074 D(G(z)): 0.1810 / 0.1478\n", "[64/4000][300/600] Loss_D: 0.6382 Loss_G: 1.9895 D(x): 0.8565 D(G(z)): 0.2532 / 0.2078\n", "[64/4000][400/600] Loss_D: 0.5893 Loss_G: 2.3195 D(x): 0.8205 D(G(z)): 0.1878 / 0.1650\n", "[64/4000][500/600] Loss_D: 0.6946 Loss_G: 2.3113 D(x): 0.7838 D(G(z)): 0.1544 / 0.1530\n", "[65/4000][0/600] Loss_D: 0.4942 Loss_G: 2.2945 D(x): 0.8534 D(G(z)): 0.1856 / 0.1752\n", "[65/4000][100/600] Loss_D: 0.5776 Loss_G: 2.3553 D(x): 0.8104 D(G(z)): 0.1681 / 0.1568\n", "[65/4000][200/600] Loss_D: 0.3353 Loss_G: 2.8011 D(x): 0.9080 D(G(z)): 0.1506 / 0.1177\n", "[65/4000][300/600] Loss_D: 0.5660 Loss_G: 2.5024 D(x): 0.8471 D(G(z)): 0.2076 / 0.1650\n", "[65/4000][400/600] Loss_D: 0.7136 Loss_G: 2.3720 D(x): 0.8029 D(G(z)): 0.2044 / 0.1747\n" ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresize_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfill_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreal_label\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 12\u001b[0;31m \u001b[0moutput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnet_D\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 13\u001b[0m \u001b[0merrD_real\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcriteion\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moutput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0merrD_real\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbackward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 204\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 205\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 206\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 207\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mhook\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_forward_hooks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 208\u001b[0m \u001b[0mhook_result\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mhook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mview\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m784\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 16\u001b[0;31m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 17\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 204\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 205\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 206\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 207\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mhook\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_forward_hooks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 208\u001b[0m \u001b[0mhook_result\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mhook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/torch/nn/modules/container.py\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 63\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mmodule\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_modules\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 64\u001b[0;31m \u001b[0minput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodule\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 65\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 204\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 205\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 206\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 207\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mhook\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_forward_hooks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 208\u001b[0m \u001b[0mhook_result\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mhook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/torch/nn/modules/linear.py\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 52\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_backend\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mLinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweight\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 53\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 54\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_backend\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mLinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbias\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 55\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__repr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/torch/nn/_functions/linear.py\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, input, weight, bias)\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave_for_backward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbias\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0moutput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnew\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweight\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m \u001b[0moutput\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maddmm_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweight\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 11\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mbias\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;31m# cuBLAS doesn't support 0 strides in sger, so we can't use expand\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "for epoch in range(niter):\n", " for i, data in enumerate(dataloader, 0):\n", " ############################\n", " # (1) Update D network: maximize log(D(x)) + log(1 - D(G(z)))\n", " ###########################\n", " # train with real (data)\n", " net_D.zero_grad()\n", " real, _ = data\n", " input.data.resize_(real.size()).copy_(real)\n", " label.data.resize_(bs).fill_(real_label)\n", "\n", " output = net_D(input)\n", " errD_real = criteion(output, label)\n", " errD_real.backward()\n", " D_x = output.data.mean()\n", "\n", " #train with fake (generated)\n", " noise.data.resize_(bs, 100, 1, 1)\n", " noise.data.normal_(0, 1)\n", " fake = net_G(noise)\n", " label.data.fill_(fake_label)\n", " output = net_D(fake.detach())\n", " errD_fake = criteion(output, label)\n", " errD_fake.backward()\n", " D_G_z1 = output.data.mean()\n", "\n", " errD = errD_real + errD_fake\n", " optimizerD.step()\n", "\n", " ############################\n", " # (2) Update G network: maximize log(D(G(z)))\n", " ###########################\n", " net_G.zero_grad()\n", " label.data.fill_(real_label)\n", " output = net_D(fake)\n", " errG = criteion(output, label)\n", " errG.backward()\n", " D_G_z2 = output.data.mean()\n", " optimizerG.step()\n", " if i % 100 == 0:\n", " print('[%d/%d][%d/%d] Loss_D: %.4f Loss_G: %.4f D(x): %.4f D(G(z)): %.4f / %.4f'\n", " % (epoch, niter, i, len(dataloader),\n", " errD.data[0], errG.data[0], D_x, D_G_z1, D_G_z2))\n", " if epoch % 10 == 0:\n", " fake = net_G(fixed_noise)\n", " vutils.save_image(fake.data, '%s/fake_samples_epoch_%03d.png'\n", " % ('results', epoch),normalize=True)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "fake = net_G(fixed_noise)\n", "vutils.save_image(fake.data[:64], '%s/fake_samples2.png' % 'results' ,normalize=True)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from PIL import Image\n", "im = Image.open(\"results/fake_samples2.png\", \"r\")\n", "plt.imshow(np.array(im))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.2" }, "toc": { "colors": { "hover_highlight": "#DAA520", "navigate_num": "#000000", "navigate_text": "#333333", "running_highlight": "#FF0000", "selected_highlight": "#FFD700", "sidebar_border": "#EEEEEE", "wrapper_background": "#FFFFFF" }, "moveMenuLeft": true, "nav_menu": { "height": "83px", "width": "254px" }, "navigate_menu": true, "number_sections": false, "sideBar": true, "threshold": 4, "toc_cell": false, "toc_section_display": "block", "toc_window_display": false, "widenNotebook": false } }, "nbformat": 4, "nbformat_minor": 2 }