Skip to content

Instantly share code, notes, and snippets.

@arghyadeep99
Created October 3, 2019 08:29
Show Gist options
  • Save arghyadeep99/f872222155c9e282d6bb7c4d12fa49a0 to your computer and use it in GitHub Desktop.
Save arghyadeep99/f872222155c9e282d6bb7c4d12fa49a0 to your computer and use it in GitHub Desktop.
Dense VAE.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Dense VAE.ipynb",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/arghyadeep99/f872222155c9e282d6bb7c4d12fa49a0/dense-vae.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "RpuFcNpdQbUe",
"colab_type": "text"
},
"source": [
"#Variational Autoencoders"
]
},
{
"cell_type": "code",
"metadata": {
"id": "4wdK8g7FQSIg",
"colab_type": "code",
"colab": {}
},
"source": [
"# make sure to enable GPU acceleration! == Done\n",
"device = 'cuda'\n",
"\n",
"#!pip3 install torch torchvision\n",
"!pip install torchviz\n",
"\n",
"#Import Libraries\n",
"\n",
"\n",
"from __future__ import print_function\n",
"import argparse\n",
"import torch\n",
"import torch.nn as nn\n",
"import torch.nn.functional as F\n",
"import torch.optim as optim\n",
"from torchvision import datasets, transforms\n",
"from torch.autograd import Variable\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from math import pi"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "ne1BN11cHAzY",
"colab_type": "code",
"colab": {}
},
"source": [
"args={}\n",
"kwargs={}\n",
"args['batch_size']=1000\n",
"args['test_batch_size']=1000\n",
"args['epochs']= 42 #The number of Epochs is the number of times you go through the full dataset. \n",
"args['lr']=0.01 #Learning rate is how fast it will decend. \n",
"args['momentum']=0.5 #SGD momentum (default: 0.5) Momentum is a moving average of our gradients (helps to keep direction).\n",
"\n",
"args['seed']=1 #random seed\n",
"args['log_interval']=10\n",
"args['cuda']=True\n",
"args['latent_dim']=2"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "IFkal8zqHU--",
"colab_type": "code",
"colab": {}
},
"source": [
"#load the data\n",
"train_loader = torch.utils.data.DataLoader(\n",
" datasets.MNIST('../data', train=True, download=True,\n",
" transform=transforms.Compose([\n",
" transforms.ToTensor()\n",
" ])),\n",
" batch_size=args['batch_size'], shuffle=True, **kwargs)\n",
"test_loader = torch.utils.data.DataLoader(\n",
" datasets.MNIST('../data', train=False, transform=transforms.Compose([\n",
" transforms.ToTensor()\n",
" ])),\n",
" batch_size=args['test_batch_size'], shuffle=True, **kwargs)\n",
"\n",
"data = datasets.MNIST('../data', train=False, transform=transforms.Compose([\n",
" transforms.ToTensor(),\n",
" transforms.Normalize((0.1307,), (0.3081,))\n",
" ]))"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "PFbyG-mNHXQt",
"colab_type": "code",
"colab": {}
},
"source": [
"class VAE(nn.Module):\n",
" def __init__(self, x_dim, h_dim1, h_dim2, z_dim):\n",
" super(VAE, self).__init__()\n",
" \n",
" # encoder part\n",
" self.fc1 = nn.Linear(x_dim, h_dim1)\n",
" self.fc2 = nn.Linear(h_dim1, h_dim2)\n",
" self.fc31 = nn.Linear(h_dim2, z_dim)\n",
" self.fc32 = nn.Linear(h_dim2, z_dim)\n",
" # decoder part\n",
" self.fc4 = nn.Linear(z_dim, h_dim2)\n",
" self.fc5 = nn.Linear(h_dim2, h_dim1)\n",
" self.fc6 = nn.Linear(h_dim1, x_dim)\n",
" \n",
" def sampling(self, mu, log_var):\n",
" std = torch.exp(0.5*log_var)\n",
" eps = torch.randn_like(std)\n",
" return eps.mul(std).add_(mu) # return z sample\n",
" \n",
" def forward(self, x):\n",
" self.x = x.view(-1,784)\n",
" self.after_fc1 = F.relu(self.fc1(self.x))\n",
" self.after_fc2 = F.relu(self.fc2(self.after_fc1))\n",
" \n",
" self.after_mu = self.fc31(self.after_fc2)\n",
" self.after_var = self.fc32(self.after_fc2)\n",
" self.z = self.sampling(self.after_mu, self.after_var)\n",
" \n",
" self.after_fc4 = F.relu(self.fc4(self.z))\n",
" self.after_fc5 = F.relu(self.fc5(self.after_fc4))\n",
" self.after_fc6 = self.fc6(self.after_fc5)\n",
" \n",
" return F.sigmoid(self.after_fc6), self.after_mu, self.after_var\n",
"\n",
"# build model\n",
"vae = VAE(x_dim=784, h_dim1= 512, h_dim2=256, z_dim=args['latent_dim'])\n",
"if torch.cuda.is_available():\n",
" vae.cuda()"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "vLW1fcyAHiUe",
"colab_type": "code",
"colab": {}
},
"source": [
"optimizer = optim.Adam(vae.parameters())\n",
"# return reconstruction error + KL divergence losses\n",
"def loss_function(recon_x, x, mu, log_var):\n",
" BCE = F.binary_cross_entropy(recon_x, x.view(-1, 784), reduction='sum')\n",
" KLD = -0.5 * torch.sum(1 + log_var - mu.pow(2) - log_var.exp())\n",
" return BCE + KLD"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "0xg6kPxMH5gc",
"colab_type": "code",
"colab": {}
},
"source": [
"def train(epoch):\n",
" vae.train()\n",
" train_loss = 0\n",
" for batch_idx, (data, _) in enumerate(train_loader):\n",
" data = data.cuda()\n",
" optimizer.zero_grad()\n",
" \n",
" recon_batch, mu, log_var = vae(data)\n",
" loss = loss_function(recon_batch, data, mu, log_var)\n",
" \n",
" loss.backward()\n",
" train_loss += loss.item()\n",
" optimizer.step()\n",
" \n",
" if batch_idx % 100 == 0:\n",
" print('Train Epoch: {} [{}/{} ({:.0f}%)]\\tLoss: {:.6f}'.format(\n",
" epoch, batch_idx * len(data), len(train_loader.dataset),\n",
" 100. * batch_idx / len(train_loader), loss.item() / len(data)))\n",
" print('====> Epoch: {} Average loss: {:.4f}'.format(epoch, train_loss / len(train_loader.dataset)))"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "z1gXozyxH9NC",
"colab_type": "code",
"outputId": "2c88e5f2-6d70-40ac-b214-758db869e977",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"for epoch in range(args['epochs']):\n",
" train(epoch)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/torch/nn/functional.py:1350: UserWarning: nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.\n",
" warnings.warn(\"nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.\")\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"Train Epoch: 0 [0/60000 (0%)]\tLoss: 543.717562\n",
"====> Epoch: 0 Average loss: 238.7989\n",
"Train Epoch: 1 [0/60000 (0%)]\tLoss: 195.782141\n",
"====> Epoch: 1 Average loss: 184.4171\n",
"Train Epoch: 2 [0/60000 (0%)]\tLoss: 177.414062\n",
"====> Epoch: 2 Average loss: 173.8885\n",
"Train Epoch: 3 [0/60000 (0%)]\tLoss: 170.528578\n",
"====> Epoch: 3 Average loss: 168.5926\n",
"Train Epoch: 4 [0/60000 (0%)]\tLoss: 165.286937\n",
"====> Epoch: 4 Average loss: 165.1644\n",
"Train Epoch: 5 [0/60000 (0%)]\tLoss: 164.751812\n",
"====> Epoch: 5 Average loss: 162.5991\n",
"Train Epoch: 6 [0/60000 (0%)]\tLoss: 160.714672\n",
"====> Epoch: 6 Average loss: 160.6124\n",
"Train Epoch: 7 [0/60000 (0%)]\tLoss: 160.050000\n",
"====> Epoch: 7 Average loss: 158.8474\n",
"Train Epoch: 8 [0/60000 (0%)]\tLoss: 159.056422\n",
"====> Epoch: 8 Average loss: 157.4453\n",
"Train Epoch: 9 [0/60000 (0%)]\tLoss: 154.777531\n",
"====> Epoch: 9 Average loss: 156.0925\n",
"Train Epoch: 10 [0/60000 (0%)]\tLoss: 156.962016\n",
"====> Epoch: 10 Average loss: 154.8308\n",
"Train Epoch: 11 [0/60000 (0%)]\tLoss: 152.563375\n",
"====> Epoch: 11 Average loss: 153.6636\n",
"Train Epoch: 12 [0/60000 (0%)]\tLoss: 151.608656\n",
"====> Epoch: 12 Average loss: 152.6121\n",
"Train Epoch: 13 [0/60000 (0%)]\tLoss: 150.309984\n",
"====> Epoch: 13 Average loss: 151.7049\n",
"Train Epoch: 14 [0/60000 (0%)]\tLoss: 149.489406\n",
"====> Epoch: 14 Average loss: 150.7736\n",
"Train Epoch: 15 [0/60000 (0%)]\tLoss: 147.717484\n",
"====> Epoch: 15 Average loss: 149.9996\n",
"Train Epoch: 16 [0/60000 (0%)]\tLoss: 149.956656\n",
"====> Epoch: 16 Average loss: 149.2849\n",
"Train Epoch: 17 [0/60000 (0%)]\tLoss: 146.808984\n",
"====> Epoch: 17 Average loss: 148.5035\n",
"Train Epoch: 18 [0/60000 (0%)]\tLoss: 146.359094\n",
"====> Epoch: 18 Average loss: 147.9447\n",
"Train Epoch: 19 [0/60000 (0%)]\tLoss: 149.620391\n",
"====> Epoch: 19 Average loss: 147.3291\n",
"Train Epoch: 20 [0/60000 (0%)]\tLoss: 147.968828\n",
"====> Epoch: 20 Average loss: 146.7695\n",
"Train Epoch: 21 [0/60000 (0%)]\tLoss: 146.015703\n",
"====> Epoch: 21 Average loss: 146.4448\n",
"Train Epoch: 22 [0/60000 (0%)]\tLoss: 144.643625\n",
"====> Epoch: 22 Average loss: 145.9682\n",
"Train Epoch: 23 [0/60000 (0%)]\tLoss: 144.447891\n",
"====> Epoch: 23 Average loss: 145.5198\n",
"Train Epoch: 24 [0/60000 (0%)]\tLoss: 141.763609\n",
"====> Epoch: 24 Average loss: 145.1594\n",
"Train Epoch: 25 [0/60000 (0%)]\tLoss: 145.880203\n",
"====> Epoch: 25 Average loss: 144.8161\n",
"Train Epoch: 26 [0/60000 (0%)]\tLoss: 145.623547\n",
"====> Epoch: 26 Average loss: 144.3858\n",
"Train Epoch: 27 [0/60000 (0%)]\tLoss: 144.284594\n",
"====> Epoch: 27 Average loss: 144.1128\n",
"Train Epoch: 28 [0/60000 (0%)]\tLoss: 143.462016\n",
"====> Epoch: 28 Average loss: 143.8797\n",
"Train Epoch: 29 [0/60000 (0%)]\tLoss: 140.753813\n",
"====> Epoch: 29 Average loss: 143.5939\n",
"Train Epoch: 30 [0/60000 (0%)]\tLoss: 144.632625\n",
"====> Epoch: 30 Average loss: 143.1965\n",
"Train Epoch: 31 [0/60000 (0%)]\tLoss: 143.728438\n",
"====> Epoch: 31 Average loss: 143.0150\n",
"Train Epoch: 32 [0/60000 (0%)]\tLoss: 140.543031\n",
"====> Epoch: 32 Average loss: 142.7703\n",
"Train Epoch: 33 [0/60000 (0%)]\tLoss: 143.872297\n",
"====> Epoch: 33 Average loss: 142.5829\n",
"Train Epoch: 34 [0/60000 (0%)]\tLoss: 143.280438\n",
"====> Epoch: 34 Average loss: 142.3437\n",
"Train Epoch: 35 [0/60000 (0%)]\tLoss: 142.242734\n",
"====> Epoch: 35 Average loss: 142.1140\n",
"Train Epoch: 36 [0/60000 (0%)]\tLoss: 141.544312\n",
"====> Epoch: 36 Average loss: 141.9683\n",
"Train Epoch: 37 [0/60000 (0%)]\tLoss: 140.854969\n",
"====> Epoch: 37 Average loss: 141.7412\n",
"Train Epoch: 38 [0/60000 (0%)]\tLoss: 138.618125\n",
"====> Epoch: 38 Average loss: 141.5433\n",
"Train Epoch: 39 [0/60000 (0%)]\tLoss: 143.133719\n",
"====> Epoch: 39 Average loss: 141.3980\n",
"Train Epoch: 40 [0/60000 (0%)]\tLoss: 140.153219\n",
"====> Epoch: 40 Average loss: 141.1594\n",
"Train Epoch: 41 [0/60000 (0%)]\tLoss: 142.079531\n",
"====> Epoch: 41 Average loss: 140.9807\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "I81rVYTsIDY5",
"colab_type": "code",
"colab": {}
},
"source": [
"# Evaluating an Example\n",
"e = 1\n",
"vae.train()\n",
"example = data.data[e]\n",
"\n",
"if args['cuda']:\n",
" vae.cuda()\n",
" example = example.cuda()\n",
"\n",
"example = Variable(example,volatile=True).float()\n",
"print(vae(example))\n",
"\n",
"plt.matshow(data.data[e])\n",
"plt.colorbar()"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "HFd2CwBSFhrR",
"colab_type": "code",
"outputId": "e0876916-174c-4068-a046-582df1dd5c21",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 264
}
},
"source": [
"plt.matshow(vae.after_fc2.cpu().detach().numpy().reshape(16,16))\n",
"plt.colorbar()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "4OnJtGcXqQ7g",
"colab_type": "code",
"outputId": "aadb6bec-76e1-4208-e8fb-6b968f352f8d",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 505
}
},
"source": [
"img = plt.matshow(vae.after_mu.cpu().detach().numpy())\n",
"plt.colorbar()\n",
"plt.show()\n",
"\n",
"plt.matshow(vae.after_var.cpu().detach().numpy())\n",
"plt.colorbar()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\ng/8PAtg+mu1yNb4AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 576x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "qAvk0jsg8sEe",
"colab_type": "code",
"outputId": "08a7f952-d8dd-4ab1-d8ed-a17347c7eda6",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 264
}
},
"source": [
"plt.matshow(vae.after_fc4.cpu().detach().numpy().reshape(16,16))\n",
"plt.colorbar()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "vIvMuqAEGsoS",
"colab_type": "code",
"outputId": "957e7482-f777-4373-e246-707f11beccc8",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 261
}
},
"source": [
"plt.matshow(vae.after_fc6.cpu().detach().numpy().reshape(28,28))\n",
"plt.colorbar()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\nRU5ErkJggg==\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "G0VQWX0NGvzJ",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": 0,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment