Last active
November 25, 2016 03:46
-
-
Save eshmaapps/c4f6f699fab958ef2432952d1fe25f99 to your computer and use it in GitHub Desktop.
Unsupervised learning of faces
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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