Skip to content

Instantly share code, notes, and snippets.

@eshmaapps
Last active November 25, 2016 03:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eshmaapps/c4f6f699fab958ef2432952d1fe25f99 to your computer and use it in GitHub Desktop.
Save eshmaapps/c4f6f699fab958ef2432952d1fe25f99 to your computer and use it in GitHub Desktop.
Unsupervised learning of faces
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not available (error: Unable to get the number of gpus available: unknown error)\n",
"WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu0 is not available (error: Unable to get the number of gpus available: unknown error)\n"
]
}
],
"source": [
"from theano.sandbox import cuda\n",
"cuda.use('gpu0')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/home/ubuntu/nbs\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using Theano backend.\n"
]
}
],
"source": [
"%cd ~/nbs/\n",
"%matplotlib inline\n",
"import utils; reload(utils)\n",
"from utils import *\n",
"from __future__ import division, print_function"
]
},
{
"cell_type": "markdown",
"metadata": {
"heading_collapsed": true
},
"source": [
"## Setup"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true,
"hidden": true
},
"outputs": [],
"source": [
"batch_size=64"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from keras.layers import Input, Dense, Convolution2D, MaxPooling2D, UpSampling2D\n",
"from keras.models import Model"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"mv faces2/train/image_0229.jpg faces2/test\n",
"mv faces2/train/image_0127.jpg faces2/test\n",
"mv faces2/train/image_0114.jpg faces2/test\n",
"mv faces2/train/image_0023.jpg faces2/test\n",
"mv faces2/train/image_0016.jpg faces2/test\n",
"mv faces2/train/image_0005.jpg faces2/test\n",
"mv faces2/train/image_0374.jpg faces2/test\n",
"mv faces2/train/image_0341.jpg faces2/test\n",
"mv faces2/train/image_0422.jpg faces2/test\n",
"mv faces2/train/image_0242.jpg faces2/test\n",
"mv faces2/train/image_0033.jpg faces2/test\n",
"mv faces2/train/image_0185.jpg faces2/test\n",
"mv faces2/train/image_0095.jpg faces2/test\n",
"mv faces2/train/image_0008.jpg faces2/test\n",
"mv faces2/train/image_0227.jpg faces2/test\n",
"mv faces2/train/image_0340.jpg faces2/test\n",
"mv faces2/train/image_0249.jpg faces2/test\n",
"mv faces2/train/image_0352.jpg faces2/test\n",
"mv faces2/train/image_0232.jpg faces2/test\n",
"mv faces2/train/image_0161.jpg faces2/test\n",
"mv faces2/train/image_0093.jpg faces2/test\n",
"mv faces2/train/image_0084.jpg faces2/test\n",
"mv faces2/train/image_0010.jpg faces2/test\n",
"mv faces2/train/image_0103.jpg faces2/test\n",
"mv faces2/train/image_0124.jpg faces2/test\n",
"mv faces2/train/image_0351.jpg faces2/test\n",
"mv faces2/train/image_0126.jpg faces2/test\n",
"mv faces2/train/image_0380.jpg faces2/test\n",
"mv faces2/train/image_0081.jpg faces2/test\n",
"mv faces2/train/image_0146.jpg faces2/test\n",
"mv faces2/train/image_0362.jpg faces2/test\n"
]
}
],
"source": [
"directory = 'faces2/train'\n",
"test_dir = 'faces2/test'\n",
"i = -1\n",
"for filename in os.listdir(directory):\n",
" i = i + 1\n",
" if i%15 == 0: \n",
" file1 = os.path.join(directory, filename)\n",
" print ('mv '+ file1 + ' ' + test_dir)\n",
" continue\n",
" else:\n",
" continue\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"??get_data"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 419 images belonging to 1 classes.\n"
]
},
{
"ename": "MemoryError",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mMemoryError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-8-94bb5f8f2193>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtrn_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'faces2/train/'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mtst_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'faces2/test/'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/ubuntu/nbs/utils.pyc\u001b[0m in \u001b[0;36mget_data\u001b[0;34m(path)\u001b[0m\n\u001b[1;32m 81\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 82\u001b[0m \u001b[0mbatches\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_batches_176\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshuffle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mclass_mode\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 83\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcatenate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mbatches\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatches\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnb_sample\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 84\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mMemoryError\u001b[0m: "
]
}
],
"source": [
"trn_data = get_data('faces2/train/')\n",
"tst_data = get_data('faces2/test/')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(419, 3, 174, 174)"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"trn_data.shape"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(31, 3, 174, 174)"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tst_data.shape"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#trn_data = trn_data.astype('float32') / 255.\n",
"#tst_data = tst_data.astype('float32') / 255.\n",
"trn_data = np.reshape(trn_data, (len(trn_data), 3, 174, 174))\n",
"tst_data = np.reshape(tst_data, (len(tst_data), 3, 174, 174))\n",
"save_array('faces/results/train_data.bc', trn_data)\n",
"save_array('faces/results/test_data.bc', tst_data)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"trn_data = load_array('faces/results/train_data.bc')\n",
"tst_data = load_array('faces/results/test_data.bc')\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"input_img = Input(shape=(3, 174, 174))\n",
"\n",
"\n",
"x = Convolution2D(16, 3, 3, activation='relu', border_mode='same')(input_img)\n",
"x = MaxPooling2D((2, 2), border_mode='same')(x)\n",
"x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(x)\n",
"x = MaxPooling2D((2, 2), border_mode='same')(x)\n",
"x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(x)\n",
"encoded = MaxPooling2D((2, 2), border_mode='same')(x)\n",
"\n",
"# at this point the representation is (8, 4, 4) i.e. 128-dimensional\n",
"\n",
"x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(encoded)\n",
"x = UpSampling2D((2, 2))(x)\n",
"x = Convolution2D(8, 2, 2, activation='relu', border_mode='same')(x)\n",
"x = UpSampling2D((2, 2))(x)\n",
"x = Convolution2D(16, 2, 2, activation='relu')(x)\n",
"x = UpSampling2D((2, 2))(x)\n",
"decoded = Convolution2D(3, 3, 3, activation='sigmoid', border_mode='same')(x)\n",
"\n",
"autoencoder = Model(input_img, decoded)\n",
"autoencoder.compile(optimizer='sgd', loss='mean_squared_error')"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"____________________________________________________________________________________________________\n",
"Layer (type) Output Shape Param # Connected to \n",
"====================================================================================================\n",
"input_12 (InputLayer) (None, 3, 174, 174) 0 \n",
"____________________________________________________________________________________________________\n",
"convolution2d_79 (Convolution2D) (None, 16, 174, 174) 448 input_12[0][0] \n",
"____________________________________________________________________________________________________\n",
"maxpooling2d_34 (MaxPooling2D) (None, 16, 87, 87) 0 convolution2d_79[0][0] \n",
"____________________________________________________________________________________________________\n",
"convolution2d_80 (Convolution2D) (None, 8, 87, 87) 1160 maxpooling2d_34[0][0] \n",
"____________________________________________________________________________________________________\n",
"maxpooling2d_35 (MaxPooling2D) (None, 8, 44, 44) 0 convolution2d_80[0][0] \n",
"____________________________________________________________________________________________________\n",
"convolution2d_81 (Convolution2D) (None, 8, 44, 44) 584 maxpooling2d_35[0][0] \n",
"____________________________________________________________________________________________________\n",
"maxpooling2d_36 (MaxPooling2D) (None, 8, 22, 22) 0 convolution2d_81[0][0] \n",
"____________________________________________________________________________________________________\n",
"convolution2d_82 (Convolution2D) (None, 8, 22, 22) 584 maxpooling2d_36[0][0] \n",
"____________________________________________________________________________________________________\n",
"upsampling2d_34 (UpSampling2D) (None, 8, 44, 44) 0 convolution2d_82[0][0] \n",
"____________________________________________________________________________________________________\n",
"convolution2d_83 (Convolution2D) (None, 8, 44, 44) 264 upsampling2d_34[0][0] \n",
"____________________________________________________________________________________________________\n",
"upsampling2d_35 (UpSampling2D) (None, 8, 88, 88) 0 convolution2d_83[0][0] \n",
"____________________________________________________________________________________________________\n",
"convolution2d_84 (Convolution2D) (None, 16, 87, 87) 528 upsampling2d_35[0][0] \n",
"____________________________________________________________________________________________________\n",
"upsampling2d_36 (UpSampling2D) (None, 16, 174, 174) 0 convolution2d_84[0][0] \n",
"____________________________________________________________________________________________________\n",
"convolution2d_85 (Convolution2D) (None, 3, 174, 174) 435 upsampling2d_36[0][0] \n",
"====================================================================================================\n",
"Total params: 4003\n",
"____________________________________________________________________________________________________\n"
]
}
],
"source": [
"autoencoder.summary()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false,
"hidden": true
},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'trn_data' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-7-c7393ae0728f>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m autoencoder.fit(trn_data, trn_data,\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mnb_epoch\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m50\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m128\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mshuffle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m validation_data=(tst_data, tst_data))\n",
"\u001b[0;31mNameError\u001b[0m: name 'trn_data' is not defined"
]
}
],
"source": [
"autoencoder.fit(trn_data, trn_data,\n",
" nb_epoch=50,\n",
" batch_size=128,\n",
" shuffle=True,\n",
" validation_data=(tst_data, tst_data))\n"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"autoencoder.save_weights('faces2/results/res50.h5')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"autoencoder.load_weights('faces2/results/res50.h5')"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"newdata = np.reshape(tst_data[0], (len(tst_data[0]), 174, 174))\n"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {
"collapsed": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([[[ 1.2182e-05, 1.2122e-05, 1.2001e-05, ..., 4.5835e-06, 4.4025e-06, 4.1613e-06],\n",
" [ 1.2062e-05, 1.2062e-05, 1.1881e-05, ..., 4.5231e-06, 4.4628e-06, 4.1010e-06],\n",
" [ 1.2001e-05, 1.2062e-05, 1.2001e-05, ..., 4.4628e-06, 4.3422e-06, 4.3422e-06],\n",
" ..., \n",
" [ 1.0554e-05, 1.0795e-05, 1.0735e-05, ..., 3.4376e-06, 4.2819e-06, 4.1010e-06],\n",
" [ 1.0735e-05, 1.0735e-05, 1.0675e-05, ..., 4.4628e-06, 4.7041e-06, 4.5231e-06],\n",
" [ 1.0614e-05, 1.0675e-05, 1.0795e-05, ..., 4.5231e-06, 5.1865e-06, 5.1262e-06]],\n",
"\n",
" [[ 1.2363e-05, 1.2243e-05, 1.2182e-05, ..., 5.0056e-06, 5.0659e-06, 4.9453e-06],\n",
" [ 1.2243e-05, 1.2243e-05, 1.2062e-05, ..., 4.8850e-06, 4.9453e-06, 4.7644e-06],\n",
" [ 1.2122e-05, 1.2243e-05, 1.2122e-05, ..., 5.0056e-06, 4.8850e-06, 4.9453e-06],\n",
" ..., \n",
" [ 1.1700e-05, 1.1941e-05, 1.1881e-05, ..., 3.7391e-06, 4.4628e-06, 4.2216e-06],\n",
" [ 1.1881e-05, 1.1881e-05, 1.1820e-05, ..., 4.5835e-06, 5.0659e-06, 5.1262e-06],\n",
" [ 1.1760e-05, 1.1820e-05, 1.1941e-05, ..., 4.6438e-06, 5.4278e-06, 5.4881e-06]],\n",
"\n",
" [[ 1.1217e-05, 1.1398e-05, 1.1036e-05, ..., 4.5231e-06, 4.0407e-06, 3.9201e-06],\n",
" [ 1.1217e-05, 1.1217e-05, 1.1036e-05, ..., 4.2819e-06, 4.0407e-06, 3.7994e-06],\n",
" [ 1.1278e-05, 1.0976e-05, 1.1278e-05, ..., 3.9804e-06, 3.8598e-06, 4.2819e-06],\n",
" ..., \n",
" [ 1.2605e-05, 1.2846e-05, 1.2785e-05, ..., 2.5330e-06, 3.1964e-06, 3.3773e-06],\n",
" [ 1.2785e-05, 1.2785e-05, 1.2725e-05, ..., 3.9201e-06, 3.4979e-06, 3.6185e-06],\n",
" [ 1.2665e-05, 1.2725e-05, 1.2846e-05, ..., 3.3773e-06, 3.9201e-06, 3.9201e-06]]], dtype=float32)"
]
},
"execution_count": 122,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"newdata"
]
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"newdata = np.reshape(tst_data[0], (len(tst_data[0]), 174, 174))\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 131,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(3, 174, 174)"
]
},
"execution_count": 131,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"newdata.shape"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABYQAAAE6CAYAAACmpFZUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAADEVJREFUeJzt3bGN3FYARdE/hoLN1QC7URGuz+5B3bAB5croQImxELwD\nrsnh5z0nHnwSmAcSuJB2Htu2DQAAAAAA7u+PV98AAAAAAADnEIQBAAAAACIEYQAAAACACEEYAAAA\nACBCEAYAAAAAiBCEAQAAAAAiBGEAAAAAgAhBGAAAAAAg4sszH3o8Hl/HGN/GGOsY4+eRN8Tp3sYY\nyxjj+7ZtP/7vw23n1myHvWyHvWyHzzhsP7Zze7bDXt5b7GU77HXodriPp4Lw+PWg+OvIG+Hl/hxj\n/H3AubZzf7bDXrbDXrbDZxyxH9tpsB328t5iL9thr6O2w008+ycj1iNvgktYJzuX61gnO5frWCc7\nl+tYJzuXa1knOZPrWSc5k+tZJzuX61gnO5frWF99A1zbs0HYfyG4v6O+Y9u5P9thL9thL9vhM474\nnm2nwXbYy3uLvWyHvXzH/Cc/KgcAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAh\nCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwA\nAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAA\nQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGC\nMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAA\nAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAA\nRAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEI\nAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAA\nAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABA\nhCAMAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIw\nAAAAAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAA\nAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABE\nCMIAAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgD\nAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAA\nABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECE\nIAwAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAAAAARzwbh\nt0Pvgis46ju2nfuzHfayHfayHT7jiO/Zdhpsh728t9jLdtjLd8x/ejYIL0feBJewTHYu17FMdi7X\nsUx2LtexTHYu17JMcibXs0xyJtezTHYu17FMdi7Xsbz6Bri2x7ZtH3/o8fg6xvg2xljHGD8PvifO\n9TZ+PSi+b9v24/8+3HZuzXbYy3bYy3b4jMP2Yzu3Zzvs5b3FXrbDXoduh/t4KggDAAAAADA/PyoH\nAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAA\nAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAAAAAR\ngjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABECMIA\nAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAA\nAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAh\nCAMAAAAARAjCAAAAAAARgjAAAAAAQMSXZz70eDy+jjG+jTHWMcbPI2+Iy3sbYyxjjO/btv048kJ2\nx7+csjub4x2742zesbyCZx1n86zjFTzreAW742xPb+6pIDx+DeuvT94U9/LnGOPvg69hd7x39O5s\njt+xO87mHcsreNZxNs86XsGzjlewO8724eae/ZMR66dvhbtZb3IN5rJOfj5zWic/n/msN7kGc1kn\nP5/5rDe5BnNZJz+fOa2Tn8981o8+8GwQ9k/Oee+MTdgd7x29CZvjd+yOs3nH8gqedZzNs45X8Kzj\nFeyOs324CT8qBwAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABECMIA\nAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAA\nAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAh\nCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwA\nAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAA\nQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGC\nMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAA\nAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAA\nRAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEI\nAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAA\nAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABA\nhCAMAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIw\nAAAAAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAA\nAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABE\nCMIAAAAAABGCMAAAAABAhCAMAAAAABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgD\nAAAAAEQIwgAAAAAAEYIwAAAAAECEIAwAAAAAECEIAwAAAABECMIAAAAAABGCMAAAAABAhCAMAAAA\nABAhCAMAAAAARAjCAAAAAAARgjAAAAAAQIQgDAAAAAAQIQgDAAAAAEQIwgAAAAAAEYIwAAAAAECE\nIAwAAAAAECEIAwAAAABECMIAAAAAABHPBuG3Q++CGZ2xCbvjvaM3YXP8jt1xNu9YXsGzjrN51vEK\nnnW8gt1xtg838WwQXj53H9zQcpNrMJdl8vOZ0zL5+cxnuck1mMsy+fnMZ7nJNZjLMvn5zGmZ/Hzm\ns3z0gce2bR+e8ng8vo4xvo0x1jHGz8/eFVN7G7+G9X3bth9HXsju+JdTdmdzvGN3nM07llfwrONs\nnnW8gmcdr2B3nO3pzT0VhAEAAAAAmJ8flQMAAAAAiBCEAQAAAAAiBGEAAAAAgAhBGAAAAAAgQhAG\nAAAAAIgQhAEAAAAAIgRhAAAAAICIfwDhjHgihiaKswAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fdf67cf7fd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"decoded_imgs = autoencoder.predict(tst_data)\n",
"\n",
"n = 10\n",
"plt.figure(figsize=(20, 4))\n",
"for i in range(n):\n",
" # display original\n",
" if i==0:\n",
" i = 1\n",
" ax = plt.subplot(2, n+1, i)\n",
" newdata = np.reshape(tst_data[i], (len(tst_data[i]), 174, 174))\n",
" newdata = np.rollaxis(newdata, 0, 3)\n",
" newdata = np.uint8(newdata)\n",
" newdata=newdata*255\n",
"\n",
" plt.imshow(newdata)\n",
" plt.gray()\n",
" ax.get_xaxis().set_visible(False)\n",
" ax.get_yaxis().set_visible(False)\n",
"\n",
" # display reconstruction\n",
" ax = plt.subplot(2, n, i + n)\n",
" decdata = np.reshape(decoded_imgs[i], (len(decoded_imgs[i]), 174, 174))\n",
" decdata = np.rollaxis(decdata, 0, 3) \n",
" decdata = np.uint8(decdata)\n",
"\n",
" plt.imshow(decdata)\n",
" plt.gray()\n",
" ax.get_xaxis().set_visible(False)\n",
" ax.get_yaxis().set_visible(False)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [conda root]",
"language": "python",
"name": "conda-root-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
},
"nav_menu": {},
"toc": {
"navigate_menu": true,
"number_sections": true,
"sideBar": true,
"threshold": 6,
"toc_cell": false,
"toc_section_display": "block",
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment