Skip to content

Instantly share code, notes, and snippets.

@secsilm
Created July 25, 2017 11:52
Show Gist options
  • Save secsilm/1ae2c0c7938298216b11365900771c5f to your computer and use it in GitHub Desktop.
Save secsilm/1ae2c0c7938298216b11365900771c5f to your computer and use it in GitHub Desktop.
simple wrong autoencoder
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from keras.layers import Input, Dense\n",
"from keras.models import Model\n",
"from keras.datasets import mnist\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"plt.style.use('ggplot')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## [Building Autoencoders in Keras](https://blog.keras.io/building-autoencoders-in-keras.html)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Simple autoencoder"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# 编码表示的大小\n",
"encoding_dim = 32\n",
"# 输入\n",
"input_img = Input(shape=(784,))\n",
"# 输入的编码表示\n",
"encoded = Dense(encoding_dim, activation='relu')(input_img)\n",
"# 输入的重建\n",
"decoded = Dense(784, activation='sigmoid')(encoded)\n",
"\n",
"autoencoder = Model(input_img, decoded)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# A separate encoder model\n",
"encoder = Model(input_img, encoded)\n",
"# A decoder model\n",
"encoded_input = Input(shape=(encoding_dim,))\n",
"decoder_layer = autoencoder.layers[-1]\n",
"decoder = Model(encoded_input, decoder_layer(encoded_input))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# 载入 mnist\n",
"(x_train, _), (x_test, _) = mnist.load_data(path='/home/alan/文档/Paper/DATA/mnist.npz')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(60000, 28, 28)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_train.shape"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(10000, 28, 28)"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_test.shape"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(60000, 784)\n",
"(10000, 784)\n"
]
}
],
"source": [
"x_train = x_train.astype('float32') / 255.\n",
"x_test = x_test.astype('float32') / 255.\n",
"x_train = x_train.reshape((len(x_train), np.prod(x_train.shape[1:])))\n",
"x_test = x_test.reshape((len(x_test), np.prod(x_test.shape[1:])))\n",
"print(x_train.shape)\n",
"print(x_test.shape)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 60000 samples, validate on 10000 samples\n",
"Epoch 1/50\n",
"60000/60000 [==============================] - 5s - loss: 0.6640 - val_loss: 0.6103\n",
"Epoch 2/50\n",
"60000/60000 [==============================] - 5s - loss: 0.3349 - val_loss: 0.0840\n",
"Epoch 3/50\n",
"60000/60000 [==============================] - 5s - loss: 0.0407 - val_loss: 0.0210\n",
"Epoch 4/50\n",
"60000/60000 [==============================] - 5s - loss: 0.0154 - val_loss: 0.0117\n",
"Epoch 5/50\n",
"60000/60000 [==============================] - 5s - loss: 0.0098 - val_loss: 0.0085\n",
"Epoch 6/50\n",
"60000/60000 [==============================] - 5s - loss: 0.0076 - val_loss: 0.0070\n",
"Epoch 7/50\n",
"60000/60000 [==============================] - 6s - loss: 0.0065 - val_loss: 0.0061\n",
"Epoch 8/50\n",
"60000/60000 [==============================] - 6s - loss: 0.0058 - val_loss: 0.0056\n",
"Epoch 9/50\n",
"60000/60000 [==============================] - 6s - loss: 0.0054 - val_loss: 0.0052\n",
"Epoch 10/50\n",
"60000/60000 [==============================] - 6s - loss: 0.0051 - val_loss: 0.0050\n",
"Epoch 11/50\n",
"60000/60000 [==============================] - 7s - loss: 0.0049 - val_loss: 0.0049\n",
"Epoch 12/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0048 - val_loss: 0.0047\n",
"Epoch 13/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0046 - val_loss: 0.0046\n",
"Epoch 14/50\n",
"60000/60000 [==============================] - 7s - loss: 0.0046 - val_loss: 0.0046\n",
"Epoch 15/50\n",
"60000/60000 [==============================] - 6s - loss: 0.0045 - val_loss: 0.0045\n",
"Epoch 16/50\n",
"60000/60000 [==============================] - 6s - loss: 0.0045 - val_loss: 0.0045\n",
"Epoch 17/50\n",
"60000/60000 [==============================] - 9s - loss: 0.0044 - val_loss: 0.0044\n",
"Epoch 18/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0044 - val_loss: 0.0044\n",
"Epoch 19/50\n",
"60000/60000 [==============================] - 7s - loss: 0.0043 - val_loss: 0.0044\n",
"Epoch 20/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0043 - val_loss: 0.0044\n",
"Epoch 21/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0043 - val_loss: 0.0043\n",
"Epoch 22/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0043 - val_loss: 0.0043\n",
"Epoch 23/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0043 - val_loss: 0.0043\n",
"Epoch 24/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0042 - val_loss: 0.0043\n",
"Epoch 25/50\n",
"60000/60000 [==============================] - 7s - loss: 0.0042 - val_loss: 0.0043\n",
"Epoch 26/50\n",
"60000/60000 [==============================] - 9s - loss: 0.0042 - val_loss: 0.0043\n",
"Epoch 27/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0042 - val_loss: 0.0042\n",
"Epoch 28/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0042 - val_loss: 0.0042\n",
"Epoch 29/50\n",
"60000/60000 [==============================] - 7s - loss: 0.0042 - val_loss: 0.0042\n",
"Epoch 30/50\n",
"60000/60000 [==============================] - 9s - loss: 0.0042 - val_loss: 0.0042\n",
"Epoch 31/50\n",
"60000/60000 [==============================] - 9s - loss: 0.0042 - val_loss: 0.0042\n",
"Epoch 32/50\n",
"60000/60000 [==============================] - 11s - loss: 0.0042 - val_loss: 0.0042\n",
"Epoch 33/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0042 - val_loss: 0.0042\n",
"Epoch 34/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0041 - val_loss: 0.0042\n",
"Epoch 35/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0041 - val_loss: 0.0042\n",
"Epoch 36/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0041 - val_loss: 0.0042\n",
"Epoch 37/50\n",
"60000/60000 [==============================] - 11s - loss: 0.0041 - val_loss: 0.0042\n",
"Epoch 38/50\n",
"60000/60000 [==============================] - 9s - loss: 0.0041 - val_loss: 0.0042\n",
"Epoch 39/50\n",
"60000/60000 [==============================] - 11s - loss: 0.0041 - val_loss: 0.0042\n",
"Epoch 40/50\n",
"60000/60000 [==============================] - 9s - loss: 0.0041 - val_loss: 0.0042\n",
"Epoch 41/50\n",
"60000/60000 [==============================] - 8s - loss: 0.0041 - val_loss: 0.0042\n",
"Epoch 42/50\n",
"60000/60000 [==============================] - 11s - loss: 0.0041 - val_loss: 0.0042\n",
"Epoch 43/50\n",
"60000/60000 [==============================] - 10s - loss: 0.0041 - val_loss: 0.0041\n",
"Epoch 44/50\n",
"60000/60000 [==============================] - 10s - loss: 0.0041 - val_loss: 0.0041\n",
"Epoch 45/50\n",
"60000/60000 [==============================] - 9s - loss: 0.0041 - val_loss: 0.0041\n",
"Epoch 46/50\n",
"60000/60000 [==============================] - 11s - loss: 0.0041 - val_loss: 0.0041\n",
"Epoch 47/50\n",
"60000/60000 [==============================] - 9s - loss: 0.0041 - val_loss: 0.0041\n",
"Epoch 48/50\n",
"60000/60000 [==============================] - 11s - loss: 0.0041 - val_loss: 0.0041\n",
"Epoch 49/50\n",
"60000/60000 [==============================] - 9s - loss: 0.0041 - val_loss: 0.0041\n",
"Epoch 50/50\n",
"60000/60000 [==============================] - 11s - loss: 0.0041 - val_loss: 0.0041\n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0x7fa40162b1d0>"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"autoencoder.fit(x_train, x_train, epochs=50, batch_size=256, shuffle=True, validation_data=(x_test, x_test))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<tf.Variable 'dense_1/kernel:0' shape=(784, 32) dtype=float32_ref>,\n",
" <tf.Variable 'dense_1/bias:0' shape=(32,) dtype=float32_ref>,\n",
" <tf.Variable 'dense_2/kernel:0' shape=(32, 784) dtype=float32_ref>,\n",
" <tf.Variable 'dense_2/bias:0' shape=(784,) dtype=float32_ref>]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"autoencoder.weights"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<tf.Variable 'dense_1/kernel:0' shape=(784, 32) dtype=float32_ref>,\n",
" <tf.Variable 'dense_1/bias:0' shape=(32,) dtype=float32_ref>]"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"encoder.weights"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<tf.Variable 'dense_2/kernel:0' shape=(32, 784) dtype=float32_ref>,\n",
" <tf.Variable 'dense_2/bias:0' shape=(784,) dtype=float32_ref>]"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"decoder.weights"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# 要显示的图片数量\n",
"n = 10\n",
"encoded_imgs = encoder.predict(x_test)\n",
"decoded_imgs = decoder.predict(encoded_imgs)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(10000, 32)"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"encoded_imgs.shape"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(10000, 784)"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"decoded_imgs.shape"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABHEAAADqCAYAAAAlBtnSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XeYFEX6wPFCWGBJi2SQDIIYURDDiSfqY0DBBMrJeYYz\nnaiYMP8U8/OIYkRQ70yoiAEVFTnDmZXz0VM8EPRAcl7yskve3x+4tW8V0709Q/dMV8/389fbdE13\nue/2zGxZb1W18vJyBQAAAAAAgHjbLdcdAAAAAAAAQNUYxAEAAAAAAHAAgzgAAAAAAAAOYBAHAAAA\nAADAAQziAAAAAAAAOIBBHAAAAAAAAAcwiAMAAAAAAOAABnEAAAAAAAAcwCAOAAAAAACAA2qk2b48\nkl4giGohXYcc5hZ5dB85TAby6D5ymAzk0X3kMBnIo/vIYTJUmcd0B3FUtWph/W4gqPLycJ8jcpgb\n5NF95DAZyKP7yGEykEf3kcNkII/uI4fJEDSPlFMBAAAAAAA4gEEcAAAAAAAABzCIAwAAAAAA4AAG\ncQAAAAAAABzAIA4AAAAAAIADGMQBAAAAAABwAIM4AAAAAAAADmAQBwAAAAAAwAE1ct0B5KfrrrtO\nx4WFhca5/fffX8cDBgzwvMbo0aN1/M033xjnxo4du6tdBAAAAAAgVpiJAwAAAAAA4AAGcQAAAAAA\nABzAIA4AAAAAAIADqpWXl6fTvrxatWpR9QUefs9RWD/4nOVw/PjxOvZb6yYTs2fPNo6PPfZYHc+f\nPz/Ue2UqKXmMUpcuXYzjmTNn6njo0KE6fuyxx7LWJynfcli3bl0djxgxQseXXHKJ0e7777/X8cCB\nA41z8+bNi6h3mcu3PCYROUwG8ug+cpgM5DF9u+++u47btm0b6DX2d6Krr75ax9OmTdPxr7/+arSb\nOnVqldcmh8kQNI/MxAEAAAAAAHAAgzgAAAAAAAAOYItxREaWTykVvIRKltD885//1HHHjh2Ndv36\n9dNxp06djHODBw/W8X333Rfovsi9Aw880Djevn27jhcuXJjt7uS9li1b6viiiy7SscyLUkr16NFD\nxyeffLJxbtSoURH1DtJBBx2k4wkTJhjn2rdvH9l9jzvuOON4xowZOl6wYEFk90XV5GekUkpNnDhR\nx5dffrmOx4wZY7Tbtm1btB1LoGbNmun41Vdf1fHXX39ttHvqqad0PHfu3Mj7VaGoqMg4PvLII3U8\nefJkHW/ZsiVrfQJccNJJJ+m4f//+xrmjjjpKx507dw50PbtMql27djquVauW5+uqV68e6PrIH8zE\nAQAAAAAAcACDOAAAAAAAAA6gnAqh6tmzp45PO+00z3bTp0/XsT09sbi4WMclJSU6rlmzptFuypQp\nOj7ggAOMc40bNw7YY8RJ9+7djeMNGzbo+M0338x2d/JO06ZNjePnn38+Rz1Buo4//ngd+03JDptd\nsnPBBRfoeNCgQVnrB3aQn31PPPGEZ7vHH39cx88884xxrqysLPyOJYzclUYp8zuNLF1atmyZ0S5X\nJVRyB0GlzPd6WQ47a9as6DvmmAYNGhjHskR/33331bHcFVUpStPiTi7DMGTIEB3L0nGllCosLNRx\nGLs12buwApliJg4AAAAAAIADGMQBAAAAAABwAIM4AAAAAAAADsjpmjj2ltOyDnHx4sXGuY0bN+r4\npZde0vHSpUuNdtTz5pbcktiuHZU143L9hiVLlgS69rXXXmsc77333p5t33vvvUDXRO7JmnK57a1S\nSo0dOzbb3ck7V155pY5PPfVU41yvXr3Svp7culYppXbbrfL/FUydOlXHn3/+edrXhqlGjcqP8L59\n++akD/ZaG9dcc42O69ata5yTa1whGvL5a926tWe7cePG6Vh+v4K3Jk2a6Hj8+PHGuUaNGulYrkV0\nxRVXRN8xD7feequOO3ToYJy75JJLdMz35p0NHjxYx/fcc49xrk2bNilfY6+ds3LlyvA7htDI98eh\nQ4dGeq+ZM2fqWP4thPDILd7le7VS5hqtclt4pZTavn27jseMGaPjr776ymgXx/dJZuIAAAAAAAA4\ngEEcAAAAAAAAB+S0nOr+++83jtu3bx/odXIa6Pr1641z2ZymtnDhQh3b/y3fffdd1voRJ++8846O\n5dQ2pcxcrVq1Ku1r29vVFhQUpH0NxM9ee+2lY7v8wp6yjvA99NBDOpbTSjN1+umnex7PmzdPx2ed\ndZbRzi7LQdX69Omj48MOO0zH9udRlOytlmWZa506dYxzlFOFz95O/pZbbgn0OlmqWl5eHmqfkuqg\ngw7SsT0lX7rzzjuz0Jud7bPPPsaxLEF/8803jXN8tu5Mltc8/PDDOm7cuLHRzut5eeyxx4xjWR6e\nyXdeBGOXzsjSKFkSM3nyZKPdpk2bdLx27Vod259T8nvpBx98YJybNm2ajv/973/r+IcffjDalZWV\n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\ntXXrVh0/++yzRrunn35ax1dddZVxzqvMFdHo1auXcSzfG+vVq+f5OrlMh9yNSimlNm3aFFLvso+Z\nOAAAAAAAAA5gEAcAAAAAAMABDOIAAAAAAAA4IHFr4si1biZPnqzjDh06GO1mz56tY7ndOLLvp59+\n2uVrvPbaa8bxkiVLdNy8eXMd2/XGYVu6dKlxfM8990R6vzg54ogjjOMWLVrkqCdQSqnRo0fr+P77\n7/dsJ7ev9VvPJuhaN0HbjRkzJlA75IZcUynVcQXWwImGXNPPVlxcrONHHnkkG91BBOTaDPJ7ilJK\nLV++XMdsKZ488nNSfj6fcsopRrvbb79dx6+88opx7tdff42od8n0wQcfGMfy+7nckvqiiy4y2nXu\n3FnHRx11VKB7LVy4MIMeoir22on169dP2U6uKaaUue7UV199FX7HcoSZOAAAAAAAAA5gEAcAAAAA\nAMABiSun6tSpk4579Ojh2U5uHy1LqxAee+t2e5pomAYOHJjR6+S2gn5lIBMnTtTxd99959nuiy++\nyKgfSXDaaacZx7K08YcfftDx559/nrU+5bMJEyboeNiwYca5pk2bRnbfFStWGMczZszQ8cUXX6xj\nWfKI+CkvL/c9RrSOP/54z3Pz58/X8dq1a7PRHURAllPZz9d7773n+TpZQrD77rvrWP5ewB0//vij\njm+77Tbj3IgRI3R87733GufOOeccHZeVlUXUu+SQ30WUMrd5P/PMMz1f16dPH89z27Zt07F8Zm+8\n8cZMuogU5Pvd9ddfH+g1L730knH86aefhtml2GAmDgAAAAAAgAMYxAEAAAAAAHAAgzgAAAAAAAAO\ncH5NnHbt2hnH9hZyFew1IeS2uojG6aefbhzLWsaCgoJA19hnn310nM724M8884yO586d69nujTfe\n0PHMmTMDXx871KlTR8d9+/b1bPf666/rWNYQIzrz5s3T8aBBg4xzp556qo6HDh0a6n3ltp1KKTVq\n1KhQr4/sqF27tuc51l+IhvxclOv72TZu3KjjLVu2RNon5Ib8nBw8eLBx7uqrr9bx9OnTdXzuuedG\n3zFE6oUXXjCOL7nkEh3b36nvvPNOHf/000/RdiwB7M+tq666Ssf16tXTcc+ePY12zZo107H998TY\nsWN1PHz48BB6CaXMfPz888869vvbUT4DMrdJxkwcAAAAAAAABzCIAwAAAAAA4IBqaW4bWl6tWrWo\n+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\nmedQ/rzyLYeZXjuOeZTCyGPt2rWNc3HOIzmsxLO4A3nkWVSKvzMy5Woew3gWba7m0dUc2s+i/HnZ\neXL5WWQmDgAAAAAAgAMYxAEAAAAAAHBA2uVUFdN/Mp26Jacj2dOPtm/frmM5lUoppdasWaNjOe2q\nQYMGRruNGzfqePXq1Tq2p3XL/q9bt844t3z5ch2vX78+Zf+U8t9uzG/LNa9rBH3NrkpiDmWelFJq\n2bJlKc8lJYfyXuTR3TySw0qu5lDeizz65yDOeYxbDu0p/Xy3CSZueYzLs2iLcx7JYSVXcyjvlY95\nTGd76jjnMYk5TNLnIjNxAAAAAAAAHMAgDgAAAAAAgAMYxAEAAAAAAHBA2mviVPCr5bJr52QNmF9N\nmawhtLdxW7VqlY43bdqkY3tbMtkveS/5GqWUqlmzpuc5ud2YXacnyXo5u/5RHsvY7+eWza3/qupL\nFDmU9YrZzKF9TnI9h6nu6Xd/rzza7eKYR57FHXg/jWcOU93T7/7kMZ55zPb7adAcet2XHAa7p9/9\nXf5+k+Q8xvVZJIfpyZfvqEn+W4PvNvHMITNxAAAAAAAAHMAgDgAAAAAAgAMyLqeyp/14TWmy2/pN\nj5PsKVNy+pPcskzGSplbh9WrV0/HhYWFRju5TZm9jZjsl7y+3U5OmbLPyWP5s0lny9Wot5DLdg7l\nVnByq7mocyj7m7QcKhVOHv3EJY88izu35f00PjlUijwq5Z9Hr9zFKY/Zfj91LYc8izvwucizqFT4\nObR/pq6/nyqVP99RM/1bw4U88t0mnu+nzMQBAAAAAABwAIM4AAAAAAAADsi4nMompyPZU4LkdCq/\nqW0FBQU6rl27tnGubt26OpbTouwpUw0bNkzZrqioyPN6W7duNc7J1anlOXv1bHlsr3Ytp4YFXana\nnmpmT9eKmms5lFPn7Kl4+ZpDuw/k0c08xj2HMlZKqfr16+uYHKbuQxzzmO1ncfPmzTp2JY+u5ZDv\nNlX3wYU88rnof/+k5rCkpMRoV1paquMkvJ/afUhqHvlc3IHvqNHmkJk4AAAAAAAADmAQBwAAAAAA\nwAEM4gAAAAAAADgg7TVxKmq4/Oq87O3GZFtZK7ZTZ0S9nKxfU0qpJk2apIxlPZx9rkWLFjrefffd\njXayFm3NmjXGOVkft3r1ah0XFxcb7VauXKlju3ZO1tXJ/2a7Bk4e2/VwQbfXS9eu5tCvbi+bOZR9\n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\nHPD/xQyk7sKTK/MAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fa3e45f7da0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(20, 4))\n",
"for i in range(n):\n",
" # 原始图像\n",
" ax = plt.subplot(2, n, i+1)\n",
" plt.imshow(x_test[i].reshape(28, 28))\n",
" plt.gray()\n",
" ax.get_xaxis().set_visible(False)\n",
" ax.get_yaxis().set_visible(False)\n",
" \n",
" # 重建的图像\n",
" ax = plt.subplot(2, n, i+1+n)\n",
" plt.imshow(decoded_imgs[i].reshape(28, 28))\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": 38,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABG4AAARUCAYAAAAnLFWhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3VuXFEXWBuDNcD4joIgHBL+lLP3/P2W8khmcUWcEEZBD\ncxS+i55OdgaV2VlFdVVE1fNc7bYiK7P7NaqbXDsyDr19+zYAAAAAqM/f1n0BAAAAAMzmxg0AAABA\npdy4AQAAAKiUGzcAAAAAlXLjBgAAAKBSbtwAAAAAVMqNGwAAAIBKuXEDAAAAUCk3bgAAAAAqdWTO\n8W8P5CoYc2jJ7yfD1Vt2hhFyXAdzsX3m4mYwF9tnLm4Gc7F95uJmMBfbt2+G8964ib/9bXaTzqFD\ns8/19u1w7kPHlMfleuyYRd577Jih8459T1Ovacp7vHnzZqHz7EeG7WcYIcex4+e5JnNxfzIcJ8f2\nc5Rh+xlGyHHs+HmuyVzcnwzHybH9HGVYX4Zz37iZcsJFfoClofcY+0FPDSd/vch1j13DmA/93g+a\nDPdXe4YRcpyi9hxluL/aM4yQ4xS15yjD/dWeYYQcp6g9Rxnur/YMIzYjx/KGxtQbD5uS4yZk2Opc\n9IwbAAAAgEq5cQMAAABQKTduAAAAACp1aM6H7rw9fPjwbrHgw3p6J1/goUNTH3y06Nq1KePGHiC0\nyIOZyvfbWzv5119/RcTynxIuw+YzjJBjRDSfowyj+Qwj5BgRzecow2g+wwg5RkTzOcowms8wQo4R\n0XyOMoz6MtRxAwAAAFApN24AAAAAKjX3duB7bUFj22NNbUVapMVor21r1ri8PVuujxzpf5tD1/q/\nNqWZ8muvX7/uvTa0vVit27nJsP0MI+QY0X6OMmw/wwg5RrSfowzbzzBCjhHt5yjD9jOMkGNE+znK\nsL4MddwAAAAAVMqNGwAAAIBKzb1Uaoqp7VB5XG5zKr/OrVLHjh3rjTt+/HhXnzx5sqvPnDkz879H\nRBw9enTmtT179qz39dOnT7t6Z2dnZh0R8eLFi67OLVXlk6OHnkw91oK2LjLc1XKGEXLc03KOMtzV\ncoYRctzTco4y3NVyhhFy3NNyjjLc1XKGEXLc03KOMty1qgx13AAAAABUyo0bAAAAgEq5cQMAAABQ\nqbmfcTPvNlbl+Px1XsdWbvmV17WdOnWqq/M6toiIy5cvd/XVq1e7+tq1a1195cqV3jH5/fKWXw8e\nPOiN+/nnn7v6l19+6epff/21N+7hw4ddndfIvXr1qjcufz209m0VZNh+hhFyjGg/Rxm2n2GEHCPa\nz1GG7WcYIceI9nOUYfsZRsgxov0cZVhfhjpuAAAAACrlxg0AAABApeZeKjW0bVXeyiuPKdumpm75\nldujLl682NVffPFFb9z169e7+ttvv+3qb775ZvCYs2fPdnVuZbp7925v3I8//tjVP/zww+C13r59\nu6vH2qHyz2VsC7GDJsP2MyyvJZPjrhZyXHeGn3/+eW/cjRs3uvpDM7xz505v3K1bt7p6kzIsryUz\nF3e1kOO6MzQXl2PdOZqLH27dGZqLy7HuHA9yLm5LjjKsL0MdNwAAAACVcuMGAAAAoFJzL5XaU7ZD\nDbVTlf89t00dPXq0q/NTnyP6rVJffvllV+fWqIiI77//fuZruZ3qwoULvWNy21NuXzp9+vTgteb2\nqp2dnd64x48fd/Xz58+7+uXLl71xQ0/nnvqzXLaWMzx+/HhX52zKJ5Dna81Zb0qG85x7U3I0F9+p\nOcPy8zS3yW5ihvOcu+UcN/0ztZYMv/vuu66+efNmVy/jb5s8Fzcxw3nOPZbj0E4nEavLMe+C4vdi\n+3OxzNDvxeH/XluOY3Nx03PclAyn/l6sOUMdNwAAAACVcuMGAAAAoFJu3AAAAABUau5n3OytzRpb\nk5XXb+U1YxHD693KtWZ5jdpnn33W1XkdW0TEtWvXujqvkcvr037//ffeMXkrrnyt5feU1/yfP3++\nq/PWYuW157V0+XstjZ33oLWSYV6LuIwMz50719WtZ5jPv205movvyHD/867Ctua4SZ+ptWX41Vdf\ndfVB/m2zSRnm8y8jxyNH3v2JvGiO+WufqdNs61zcpAzz+WvJcWguynFYbRmaizpuAAAAAKrlxg0A\nAABApeZeKrXXcjS0zdU8r+WWqtxCFdFvTbp06VJXX758uTcutzb98ccfXf3o0aOuzlt3lfKWbrk1\nqpS3gRuTW7LKdqj8Wq5XbUqGYw4yw/v373f17du3u1qG76t5LspxGnNxXAsZ5vObi7O1kGPNGfrb\nZrracsyt9ObiNLVlaC4uprYc81yU4zS1ZWgu6rgBAAAAqJYbNwAAAACVWnhXqdLY05SnvFd+en9E\nxKlTp7o6P8G5fGJ1bj29d+9eV//2229d/eLFi8H3/vjjj2deT3munZ2drn769Glv3PPnz7s67xRQ\ntlrlNqoanhJekuGuFjIsz5/JcVcLOcqw/QzL82dy3NVCjjJsP8Py/Nmyc8zZyXG5zMX2MyzPn5mL\nu1rI0Vx8P8Nnz5519Toy1HEDAAAAUCk3bgAAAAAq5cYNAAAAQKUWfsZNubXV1DVbQ2u+yvVuJ06c\n6OqTJ092dbmGLK93++9//9vVDx486Opy27G8HVjeWixvFRcR8erVq67Oa9yePHnSG5dfy9c39jPJ\nr5XjFt0aeKpNyzCfZ1syzOfYlBzNxdnXNEaG779mLvpMXcSmZWguHmyO+edrLi6Xudh+hvkcmzIX\ntzFHc/H9DPPzb9aRoY4bAAAAgEq5cQMAAABQqbmXSu21+JStPUPtUGV7VX4tb72V25ci+tt35dfK\n98tbq718+bKr83ZiefuviIgvvviiq69evTrzmIiIO3fudHVum3r8+HFvXD5vvr6x9qexcQe93Vtt\nGeat22Q4nRzbz3GZGebtGX2evmMuynGKdWSYW7XNxeWo+TM1bx0rx2E1Z2guTifH9nOUYX0Z6rgB\nAAAAqJQbNwAAAACVWnipVGmoRaj877lVKrcTl0+Bzi3E+ZjyCdPZhQsXujq3St24caM37ssvv+zq\ns2fPdnVuwYqI+P3337s6t57nJ09H9FughtrHyq+H6lWoLcN8PTnDTz75pKuvX7/eO2bbM4xoJ0dz\ncdgyM8xP6fd5ulrmYvs5riPDPG7ZczHvpJFzitjcDCPq/kw9d+5cV/v7ZljNGfo8nU6O7ecow/oy\n1HEDAAAAUCk3bgAAAAAqNfdSqSntUWNPSB7aeaFsmxpqIc5P5S+PO3/+fFffvHmzq7/++uveMbml\nKj8d+t69e71x+Vz5GnIbVym/NrVtatXWnWHZ+ibDxaw7x0Xm4v/93//1jrl8+XJXb2OOLWZoLr5v\n3Tn6TP1w687QXFyOdedoLn64dWdoLi7HunM0Fz/cujM0F2ecc2nvBAAAAMBSuXEDAAAAUCk3bgAA\nAAAqtbRn3Ewdn7/OW4OVa8jy9lvPnj3r6rwOLmJ4vdvFixe7Om//VXr69GlX//nnn73Xnjx50tV5\nDV++7oiI48ePD17fkPx+5frAg17PuI4Md3Z2unpdGWZlhidOnBi8viHrzHCRc9QwF/MWtaVl5Ggu\n7mp5LraW4SLnkONs2zYX/W2zfJuQY/65mYvzj281Q3NRjrOYi+/IUMcNAAAAQLXcuAEAAACo1NxL\npfZafBZtz8otR7nF6M2bN71xuVXq4cOHXZ3bqSIizp0719XPnz/v6gcPHnR1XgYT0b/2x48fd/Wd\nO3d64/Jr+frGtgYb2xYty+8x9ZhlWUeGuSWt3N5tVRmObe821sY2ZJ0Z5nNu21ycuk1fCzmai+1n\nmM8px9layLG2z9Pc7r1Iho8ePerqu3fv9sZt6t82+Zy15Gguzm/TMjQX68jxQz9T/Xtxfubi++/x\noRnquAEAAAColBs3AAAAAJWae6nUnrFWn9yWVLYYDbUc5TbPiP6Tn+/fv9/VL1686I3LbVT5mvJ5\nymOOHTs287XyCdO5dSsrW7zytQ/V5fWN/fdVPO191nmHrmEswzxOhu+sKsNZ5x66Djm+U1uOPk9n\nX3tLGc4699B1yPGd2nKs8fN06DwyHLbKHHOb/irnYnncnk3J0efp7GtvKcNZ5x66jmXkOHUuDp1H\njrOZi7OvfR0Z6rgBAAAAqJQbNwAAAACVcuMGAAAAoFILP+OmXJM1tNasHDf2WpbXseU1aXlrsfLr\nvM3XmTNnuvrkyZO9Y/J2YnntWnk9+b3zuHIdW34t1+U6tqlbTq9qu7dlZDimtgzz9zeW4VhOtWUY\nsX05mosx6bWs1Qy3cS7KcbaW5uKYVjNs6fM0YrU55m1p85a3EQeb49AWs+biZn+ebuNcnJrjuubi\npudoLsbM19aRoY4bAAAAgEq5cQMAAABQqYWXSpVyy9FQC1VEv3UttyUdPXq0N+7EiRNdffr06a7O\nLU8R/ZaoCxcuzBxXHnP27Nmuzu1Z5VZgr1+/7uq8VVmuI/ptXfn9pm4NVrZrlVuPrUrNGZ4/f753\nTH6/nNNYhk+ePOnqnZ2d3ric4cuXL7u6tQwjNj9Hc/GdTc/QXFxdjrnVeNm/F1vOseYMy2Nyhj5P\n+2rOcRlzcRv+vqk5Q3NxupZy9O/F2VrKcNPmoo4bAAAAgEq5cQMAAABQqbmXSu21+Iw9BXnoSfcR\nwy1B5ZOjc3va5cuXZ9YR/Vap/Nqnn37a1R999FHvmNym9PDhw67OTyOPiHjw4EFX37t3r6v/+OOP\n3rjcRpVbrcq2qXzeXJc/k6m7Gixq3Rl+/PHHvXG5TXhqhvn6ck5TM8x1RHsZ5vO3PBeHcixbGM3F\nmDlOhu/X5uJyc/R7cfY1lOPK72tPDX/bmIt9y5iLuf2+trnY+t83m5ChubjZOfq9OPsaavzbZtPm\n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\nW5MuXbrU1ZcvX+6Ny21Kf/zxR1ffvn27q/PWXaW8NV9ujSrlLcTG5Jassh0qvza1/e4g1JZhbk+7\nf/9+V//5559dLcP3TclxzKpy/Omnn7pajn01z8X8efro0aOuluH75DiuhRxb+Tz1t804OY5/7y3k\nuO7P01xH9P+dYS5Ot+4c/Vvjw9X8ebqtf9vouAEAAAColBs3AAAAAJVaeFep0tjTlKe8V37adETE\nqVOnujo/wbl8YnVud7t3715X//bbb1394sWLwff++OOPZ15Pea6dnZ2ufvr0aW/c8+fPuzo/Zb5s\ntcptVDU8Jbwkw10tZFieP5PjrhZylGH7GZbnz+S4q4UcZdh+huX5s23K8cmTJ71xreUoQ3Nx7L3k\nuDoyrC9DHTcAAAAAlXLjBgAAAKBSbtwAAAAAVGrhZ9yUW1tNXbM1tOarXO924sSJrj558mRXl2vI\n8nq3//73v1394MGDri63HcvbgeWtxfKWfxERr1696uq8xq1cP5xfy9c39jPJr5XjFt12bSoZtp9h\nPoccY+ZrLeQow/YzzOeQY8x8rYUcZdh+hvkcm5JjPs+25CjD9jPM5zjoHPPP1Gfqcm3aXNyEDHXc\nAAAAAFTKjRsAAACASs29VGqvxads7Rlqhyrbq/Jreeut3L4U0d++K79Wvl/e9uvly5ddnbcTy9t/\nRUR88cUXXX316tWZx0RE3Llzp6tza9Tjx4974/J58/WNtT+NjTvo7d6WmWHeEm7RDPPWajKcrra5\nKMf51Zahz9PF1JajuTi/2jI0FxdTW47m4vxk2H6G+RwH/W+NvBQmL3+R44dbx1yU4TgdNwAAAACV\ncuMGAAAAoFILL5UqDbUIlf89t7vltqnyKdC5VSofUz5hOl/PhQsXuvqTTz7p6uvXr/eO+fLLL7v6\n7NmzXZ1bsCIifv/9967Obcv5ydMR/Raoofax8uuhehWWmWF+MviiGWY5w9zuduPGjd64bc8wor65\nmMlxmtoyHPo8leG42nLM5DhNbRmai4upLcdMjtO0kqF/Z4xbx781ct7m4odbx1w8yAzzsrqcU0Q7\nGeq4AQAAAKiUGzcAAAAAlZp7qdSU9qixJyQPPWG6bJsaapUq26bycefPn+/qmzdvdvXXX3/dOya3\nVOWnQ9+7d6837vXr1zPPm1u/Svm1qW1TqybD9jMcO/+qcsw/2/I4OU4jw/YzHDu/HN9/rdYc151h\ny78Xs22fiy3naC6+X5fHyXC6defY8u/FzFx8p6UMD2ou6rgBAAAAqJQbNwAAAACVcuMGAAAAoFJL\ne8bN1PH567y9W7mGLG+/9ezZs67O6+Aihte7Xbx4savzFm6lp0+fdvWff/7Ze+3Jkyddndfw5euO\niDh+/Pjg9Q3J71euDzzo9YybkGH+mW1jhouco/Ycc1bbkuMmZJiZi4uNl+P777cNc3FnZ6er15Vh\ntmiGQ887MBfNxUVsa4ZZmeGJEycGr2/INs7FGj5TlzEXa/lM3dYMs9o+T3XcAAAAAFTKjRsAAACA\nSs29VGqvxWfR9qzccpRbjN68edMbl9sWHz582NW5nSoi4ty5c139/Pnzrn7w4EFX5xbDiP61P378\nuKvv3LnTG5dfy9c3tjXY2LZoWX6Pqccsy6Zl+OjRo66+e/dub9ymZpjPKcfZWshRhu1nmM9ZS465\nVViO06wjw9yqXW5du6q/baZue9pChvmctcxFf6POb1szHJuLY0sthmz7XFzXZ6q5+I7fi++/x4dm\nqOMGAAAAoFJu3AAAAABUau6lUnvGWn1yW1LZYjTUcpTbkiL6T37OLVAvXrzojcstjfma8nnKY44d\nOzbztfIJ07l1KytbvPK1D9Xl9Y3991U87X3WeYeuYSzDPG4sw/v373e1DJdrlXNRjgdjlXPR5+nB\nqfEzdeg8cpzN5+nsa28pw1nnHroOOb5TW441fp7KcH7r+vfiy5cve+PkuDifp7OvfR0Z6rgBAAAA\nqJQbNwAAAACVcuMGAAAAoFILP+OmXJM1tNasHDf2WpbXseUtv/J2YhH9rcbyFqZnzpzp6pMnT/aO\nyduJ5bVr5fXk987jynVs+bVcl+vYpm7nt6rt3paR4ZicYV5XmH+u5dcynN8q56IcD8Yq56LP04Pj\nMzVmvtZSjj5PY+ZrYznVlmFEWzmePn26d0x+bWqO+fvblBx9nsbM11r6PI1oay7KcbZty7Dmz1Md\nNwAAAACVcuMGAAAAoFILL5Uq5ZajoRaqiH5rfm5LOnr0aG/ciRMnujq3keaWp4h+S9SFCxdmjjt/\n/nzvmNxSlduzyq3AXr9+3dV5q7JcR/TbuvL7Td0arGzXKrceW5WaMyyPyRnmnLY9w4i2cjx79mxX\nm4uzr6P2DM3FYXLc1XKONWdY/m2T32/ZGeatdVvLMKLuHPPvwfL9pub45MmTrt7UHGvOcNn/ztjZ\n2emN25TP04i2cjzIz9SWc9z0DPPn6dhcXMfnqY4bAAAAgEq5cQMAAABQqbmXSu21+Iw9BTm3SpXj\nhlqCyidHgzlfAAAgAElEQVRH59bRy5cvz6wj+q1S+bVPP/20qz/66KPB63vw4EFX591Wytfu3bvX\n1X/88UdvXG6Fy61WZdtUbo/KdfkzmfpE/EVtQob55/fw4cOuLlvfNjXDfP5Fcyy/tz1ljrnlV47L\ntQlzcds/T/P5W87RXGw/Q3Nxdb8X15GjuTj7GjZxLuY6or0M8/kPOsd1/I26LZ+pmzwXp36e1jYX\nddwAAAAAVMqNGwAAAIBKuXEDAAAAUKkD2Q48K9dy5fVgeSu0clzeQiyvfbty5Upv3GeffTbztYsX\nL858r4j+OsW8/vBf//pXb9w///nPrv71119nHh/RX++WtwYrv6e89i/XQz+7VVtXhlevXu3qvE4x\nZ1iuARzK8N///ndv3CZnOHWruT3l95LXY47lmNeifmiO5VzMa0q3NcdZNmEubvvnacRm5GgutpPh\nn3/+2dXLmIt5S9SWM4xY/u/FdeRoLtY7F/07Y7pl5zj1b9RF/r049DfqtudY87/5D/rzdN2/F3Xc\nAAAAAFTKjRsAAACASi28VGqs1Se3C5Xj8vZbjx8/7upyy7S85Vfe2iu3LJbvn1uRcivTzs5O75jc\n4vb3v/99Zh0RcevWra7+z3/+09WPHj3qjXvx4kVX51awse3Tpm6tdpDGMszXV7Z/Tc3w/PnzXT2W\n4dBWcjnDXEdE/Pzzz129rRlOabdbxlyU48EzF99pNcMIOWat5njQGea/bS5dutTV+WcUMS3Dg/7b\nJreBt5RhxGpzNBcPxir/nfGhc1GGww46x6m/F6f8e1GOs63yb5uxuVjDv/nX/XtRxw0AAABApdy4\nAQAAAKjU3Eul9tqgyrap/PVY61t+wnRumypbhYbeLz/xP6L/tOfc9pjf7969e71jfvrpp67OrVG5\nJS6i38qVW6Vyq1t5Tflax1qjhtq9yvc4CFMyLH/O2SIZ5vebmmF2//793tc5w3/84x9dXT4lfFMz\nzOdY5Vw8yBzNxdnX1NJc3MYM8znk+E5rOa4jw/w9lS3hUzLMO55ERNy+fbur15XhmFrm4th1LJJj\nPmZsLuadTzJ/o/at+98Zi8xFn6fvW0eO+ftc5Peiz9TZ77/K34v5ZzE2F/Pnaf45bPpc1HEDAAAA\n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\ntUXm4rblWEuGy5yL5edpbpPdxM/Tec7d8lzc9BxryXBVc3ETP0/nOfem5GguvtNqhuZifb8Xp+bo\n34uz/3sNGea/bTYhQx03AAAAAJVy4wYAAACgUm7cAAAAAFRq7mfc7K3NGluTlddv5fWbEf01ZEeO\nvDt9udYsr1H77LPPujqvY4uI+Oqrr7o6r5HL69h+//333jF5K658reX3lNfFnT9/vqvz1mLltef1\nkPl7LY2d96AtM8O8ZrH2DM+dO9fVrWeYz7+uHPO2fBFyXMS6M5w6F/N6X5+nw+eX4zut5bitGW7S\n52k+/7blaC6+02qG5uLB5njt2rWu9u/FaWRYX4Y6bgAAAAAq5cYNAAAAQKXmXiq113I0tM3VfoZa\nqnILVUS/NenSpUtdffny5d643Nr0xx9/dPXt27e7Om/dVcpbnebWqNJff/01+FqWW7LKdqj8Wq5X\nbUqGU1+T4fqsO8dcR/RbBu/fv9/Vchy27gynzsVHjx51tQzfV1uOeS7KcZraMjQXFyPHcS3kKMNx\nLWSYz19jjv5GnUaG49aRoY4bAAAAgEq5cQMAAABQqYV3lSqNPU15ynvlHaYiIk6dOtXV+QnO5ROr\nc6vUvXv3uvq3337r6hcvXgy+98cffzzzespz7ezsdPXTp097454/f97V+cnWZatVbqOq4SnhJRnu\naiHD8vyZHHe1kKMM28+wPH8mx10t5CjD9jMsz5/JcVcLOcqw/QzL82dy3NVCjjKsL0MdNwAAAACV\ncuMGAAAAoFJu3AAAAABUauFn3JRbW01dszW05qtc73bixImuPnnyZFeXa8jyerf//ve/Xf3gwYOu\nLrcdy9uB5a3F8haqERGvXr3q6rzG7cmTJ71x+bV8fWM/k/xaOW7RrdankmH7GeZzbEqO+TzbkuOm\nZWguynHWay3kKMP2M8znkGPMfK2FHGXYfob5HHKMma+1kKMM68tQxw0AAABApdy4AQAAAKjU3Eul\n9lp8ytaeoXaosr0qv5a33srtSxH97bvya+X75W2/Xr582dV5O7G8/VdExBdffNHVV69enXlMRMSd\nO3e6OrdGPX78uDcunzdf31j709i4g97urbYM89ZqMpyuthzNxfmtI8PcHmouLscyc8zbbPpMfcdc\n3CXDcbX9XpTj/GTYfob5HD5T32ktR3Oxvgx13AAAAABUyo0bAAAAgEotvFSqNNQiVP733Aae26bK\n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\n6k3Kcd0ZHuTn6bZkWF5LJsddLeS4yRn6vSjHPS3kKMP2MyyvJduEHP1ebD/DVueijhsAAACASrlx\nAwAAAFCpuZdK7SnboYbaqcr/ntumjh492tX5qc8R/VapvItCbo2KiPjuu++6+ubNm12dl21cuHCh\nd0xue8rtS6dPn+6Ny21dedzOzk5v3OPHj7v6+fPnXf3y5cveuKGnc0/9WS5byxkeP368q3PrW/kE\n8k3PcJ5z15jj0Fwsc8zXmvPelBxbzjDPxW3OcJ5z15jjInNxEz9Ta8nw+++/n/nasv+2MRfrzjHv\ngjL2980m5lhLhgf5eepv1OH/XnOO5Weq34uz/3sNGQ79e7HV34s6bgAAAAAq5cYNAAAAQKXcuAEA\nAACo1NzPuNlbmzW2Jiuv38prxiKG17uVa83yGrXPPvusq/M6toiIr776qqvzGrm8Pu3333/vHZO3\n4srXWn5PeV3cuXPnujpvLVZee14Pmb/X0th5D1orGeZ1ojIcPv+25Xj+/Pmubj3H2jLMX8twutpy\n9HtxfrVleO3ata5eJMMx5uLB5Zi3q43we3ER687Q5+lyyLH9HLc1w5o/T3XcAAAAAFTKjRsAAACA\nSs29VGqv5Whom6t5XsstVbmFKqLfmnTp0qWuvnz5cm9cbm36448/uvrRo0ddnbfuKuWt+XJrVClv\nyTgmt2SV7VD5taktzQeh5gzv37/f1bdv3+5qGb6v5hzzXJTjsNoyzG2fMpyuthz9XpzflAzHyPD9\neh3WnWOuI/qfqf6+mcbn6bgWMsznl+NsLeQow3HryFDHDQAAAECl3LgBAAAAqNTCu0qVxp6mPOW9\njhzpX8qpU6e6Oj/BuXxidW49vXfvXlf/9ttvXf3ixYvB9/74449nXk95rp2dna5++vRpb9zz58+7\nOu8UULZa5TaqGp4SXpLhrhYyLM+fyXFXCzmuKsOcmwyXz1xsP0cZtp9hef7MZ+quFnI0F9vPsDx/\nJsddLeQow/oy1HEDAAAAUCk3bgAAAAAq5cYNAAAA/8/evbZHbV1tAF5pOJhwMCE0hDQkkFwtV/v/\nf0r6qbxJE0pSCGDAYI4h7wdqeWkzkjXDeLz3zH1/Ws5II9lPt2ZQ19YGKrXwM27Kpa2mztkamvNV\nznfLSyieOXOmq8s5ZHm+26+//trVOzs7XV0uO5aXA8tLi+VjRkS8fv26q/Mct6dPn/a2y6/l8xv7\n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\nLoex2H6OMmw/w/L42VFeU+W4XMZi+xmWx8/k+E4LOcqw/QzL42dyfKeFHGVYX4Y6bgAAAAAq5cYN\nAAAAQKXcuAEAAACo1MLPuCmXtpo6Z2tozlc5321ra6urz5w509XlHLI83+3XX3/t6p2dna4ulx3L\ny4Hl4+QlVCMiXr9+3dV5jtvTp0972+XX8vmN/U3ya+V2iy4pO9WqMszLtslw+dZtLOb/vWxKjjJs\nP8N8jHW5pm5ijsZi+xnmY8gxZr7WQo4ybD/DfIyjzjH/Tf1bY7mMxfoy1HEDAAAAUCk3bgAAAAAq\nNfdUqf0Wn7K1Z6gdqmyvyq/lpbdy+1JEf/mu/Fr5fnnZr1evXnV1Xk4sL/8VEfHVV1919dWrV2fu\nExFx9+7drs6tUbu7u73t8nHz+Y21P41td9TLvdWWYV5aTYbTHUeOubVQjh9Ohu1nmI/hmnqgtRxl\n2H6G+RjLyDEveSvHAy2NRRnO3q61sTh2TR2aCiPHD2cs1pehjhsAAACASrlxAwAAAFCphadKlYZa\nhMr/nlulcutb+RTo3M6f9ymfMJ3P5+LFi12dW6Vu3LjR2+fatWtdff78+a7OLVgREb/99ltX5ylZ\n+cnTEf0WqKH2sfLnoXoVasswyxl+/vnnXX39+vXedpueYcTx5Ji3m5qjsTislQyNxXGuqe3n2EqG\nrqfjlpljXvlEjqvTSoaup+NcU9vPsZWxuEkZ6rgBAAAAqJQbNwAAAACVmnuq1JT2qLEnJA89Jbxs\nmxpq5y/bpvJ+29vbXX3z5s2u/u6773r7XL58uavz06Hv37/f2+7Nmzczj5vbuEr5taltU6vWYobf\nfvttb5/cFreJGY4df1U55r9tuZ8cp5Hh4hlmmz4WfS5+uBYzrGUs1pLh2PFdU99/rdYcZdh+hmPH\nl+P7r9Waowzr+46q4wYAAACgUm7cAAAAAFTKjRsAAACASi3tGTdTt88/56XByjlkefmt58+fd3We\nBxcxPN/t0qVLXX3u3LnB83v27FlXP378uPfa06dPuzrP4cvnHRFx+vTpwfMbkt+vnB941PMZW8ww\nL+EW0f+bbWKGixyjxhyzTcxxUzPMygy3trYGzy8bmmNtLC72ubjINTUzFo9/LPpclGN53hHt5SjD\n9jNc5Bg15phtYo7rkOFxfbc5qu+oOm4AAAAAKuXGDQAAAECl5p4qtd/is2h7Vm45yi1Gb9++7W2X\n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\nyUtx5XMtf6c8t/HChQtdnZcWK889z6XLv2tp7LhHrbYMv/nmm67OGeb5pMvIcHt7u6tbzzAff9Ny\nNBYPtHo9NRblOIuxeMD1dDFybD/HdctwzLpmmI9fe47+vTjsuDPMS7hH9DPd1Ax13AAAAABUyo0b\nAAAAgErNPVVqv+VoaJmreV7LLVW5hSqi35r02WefdfXly5d72+XWpocPH3b1jz/+2NV56a5SXg4s\nt32X8hJiY3JLVtkOlV+b2kZ5FGrO8MGDB1395MmTrpbh++Q4roUca87Q9XS6KTmOWdVYlOOwmsei\n6+l0chzXQo4yHNdChvn4teSYp7X4fjPNcWeY6wgZRui4AQAAAKiWGzcAAAAAlVp4VanS2NOUp7zX\niRP9U/nkk0+6Oj/BuXxidW6Vun//flf/97//7eqXL18Ovvef//znmedTHmtvb6+rnz171tvuxYsX\nXZ2fbF22WuU2qhqeEl6S4TstZFgeP5PjOy3kKMP2MyyPn21yjs+fP+/qFnKUobE49l5yXB0Ztp9h\nefxMju+0kOOqMsy5yXCcjhsAAACASrlxAwAAAFApN24AAAAAKrXwM27Kpa2mztkamvNVznfb2trq\n6jNnznR1OYcsz3f79ddfu3pnZ6ery2XH8nJgeZm/vMxYRMTr16+7Os9xe/r0aW+7/Fo+v7G/SX6t\n3G7RJWWnWlWG+e8pw+UzFtvPcd0yzMfZlAzzMdYlx2WMxTxHvIUcZWgsltv5fjN7u3UZi6vK0Oei\na+qs11rIcVUZ5r+tDMfpuAEAAAColBs3AAAAAJWae6rUfotP2doz1A5Vtlfl1/LSW7l9KaK/fFd+\nrXy/vOzXq1evujovJ5aX/4qI+Oqrr7r66tWrM/eJiLh7925X59ao3d3d3nb5uPn8xtqfxrY76uXe\nVpXhUHta+X55aTUZTlfbWJTj/GrL0PV0MbXlaCzO7zgyzK3aMlwO32/az1GG7WeYj1HL56LvN/Or\nLUNjUccNAAAAQLXcuAEAAACo1MJTpUpDLULlf//Tnw7uFeW2qfIp0LmFOO9TPmE6n8/Fixe7+vPP\nP+/q69ev9/a5du1aV58/f76rcwtWRMRvv/3W1bnFLj95OqLfAjXUPlb+PFSvQm0ZZjnD3O5248aN\n3nabnmGEHCPaz7G2DF1PF1NbjtkiYzFPIchZRaxvjseRYd7O9XQ5jMX2c5Rh+xlG1Jej7zfzqy3D\nbFMz1HEDAAAAUCk3bgAAAAAqNfdUqSntUWNPSB56wnTZNjXUQly2TeX9tre3u/rmzZtd/d133/X2\nuXz5clfnp0Pfv3+/t92bN29mHje3cZXya1PbplbtuDPMf9dyv6EMv/32294+uUV1EzMcO74c33+t\n1hyPO0PX0+VoMUdjse+4M3Q9XY7jztFY/HDHnaGxuBzHnaOx+OFkWF+GOm4AAAAAKuXGDQAAAECl\n3LgBAAAAqNTSnnEzdfv884kTB4cv55Dl5beeP3/e1XkeXMTwfLdLly51dV6Kr/Ts2bOufvz4ce+1\np0+fdnWew5fPOyLi9OnTg+c3JL9fOT/wqOcztphhXsKttIkZLnIMOc5mLB5Y1fU0az3DRY6xjBz3\n9va6+rjGYlbmuLW1NXh+Q4zFA4tkmP9mm3g9XeQYNeaYbWKOMmw/w0WOUWOOi1xTs9ZzlGF9Geq4\nAQAAAKiUGzcAAAAAlZp7qtR+i8+i7Vm55Si3GL19+7a3XW6VevToUVfndqqIiAsXLnT1ixcvunpn\nZ6erc8t2RP/cd3d3u/ru3bu97fJr+fzGlgYbWxYty+8xdZ9lWbcMnzx50tX37t3rbbeuGeZjynG2\nFnJctwynXk+nLrXYQob5mEedY54eldt8y+Vrc6vwceU41ho8xFg84Hq6mNpyXNVYXKcc1y1DY7GO\nHH2/mZ8M68tQxw0AAABApdy4AQAAAKjU3FOl9o21+uS2pLLFaKjlKLclRfSf/Pzw4cOufvnyZW+7\n3EaVzykfp9zn1KlTM18rnzCdW7eyssUrn/tQXZ7f2H9fxdPeZx136BxkeKC2DGcde+g8xnLM28nx\nQEtjcWqGuaVUhst11NfUPFVq6lgcOo4cZ3M9PdBqhrOOPXQeq/x+M3QcOc4mw9nn3lKGs449dB6+\n3xyoLcdNyLDcb19tGeq4AQAAAKiUGzcAAAAAlXLjBgAAAKBSCz/jppyTNTTXrNxu7LUsz2PL887y\n0mLlz3nJvXPnznX1mTNnevvk5cTy3LXyfPJ75+3KeWz5tVyX89imLo+6quXeZBgzX2spw4jl5DhG\njkdvlRnmJRTz8owRMvxQm3ZNzb/fuuToehozX2spw4jNG4vrmKMMY+ZrLWUY4ftN1mqOm5Dh0JLd\nYxmO5XRUGeq4AQAAAKiUGzcAAAAAlVp4qlQptxwNtVBF9NuecsvTyZMne9ttbW119dmzZ7s6tzxF\n9FuiLl68OHO77e3t3j65pSq3Z5XLub1586ar81JluY7ot1jm95u6NFjZrlUuPbYqNWdY7nP+/Pmu\nlmFfzTmWYzG/X85q03NsKUPX02Et5bjIWHz69GlX56XKI9Ynx3XP0FiU477ac6w5w3Kf/Lkow76a\nc/T9Zpp1zzB/txnL8NWrV129qgx13AAAAABUyo0bAAAAgErNPVVqv8Vn7CnIQ09mjhhuCSqf4p6n\nwly+fHlmHdFvlcqvffHFF1396aefDp7fzs5OV5dtU/m1+/fvd/WDBw962+U2qtxqVbZN5faoXJd/\nk6lP4V7Uh2ZY/l77ygxze9qyM8x/v0ePHnX1pmSYj28sHmgtx3XOMK8MUL62Thnm47ec44deU3Md\n0V6O65Dhpl9P8/F9vznQWo6ryvA4rqc+F/tcU9+pNcd1zrDVsajjBgAAAKBSbtwAAAAAVMqNGwAA\nAIBKHcly4Fk5lyvPB8vLcpXb5SXE8ty3K1eu9La7evVqV+c5bpcuXZr5XhH9+aZ57trPP//c2+6H\nH37o6jt37szcP6I/3y0vDVb+TnnuX66H/narNjXDPI9vLMM8h3HZGea5iDLsq3kslnM5jcXZas5w\n6vX0p59+6m23aRlG1J3jUY/FvJxmyzlucoabOBaP4/uNHKdZdobHMRZ9LtZ9TfXvxWnWIcNWx6KO\nGwAAAIBKuXEDAAAAUKmFp0qNtfrklqCydSgvoba7u9vV5XJbecmvvLRXbpOKGF6GLLdp5zoi4vbt\n2139/fffz6wjIm7dutXVv/zyS1c/efKkt93Lly+7OreCjS2fNnVptaM0lmHOrdxuaobb29tdLcOj\nc9RjUY5Hz/X0QKsZRhiLWW4hbilHGR4wFuU4i7H4jgynkeOBVnNs6Tvq3t5eb588JWodMtRxAwAA\nAFApN24AAAAAKjX3VKn9NqiybSr/nJ/oXspPmM5tU2WrUH6/3HpVvnd+2nNutcoePnzY+/nf//53\nV+fWqNwSF9Fv5cqtUrlNqjynfK5jrVH59yu3K1vNlm1KhmNTpRbJMP+NZLgcxzEW5bhcrqftZ5iP\nMfWaWjIW39m0sXiUGf7f//1fV5croKxrhvkYxuKB1nKUYfsZ5mOsyzV1E3P0HbW+DHXcAAAAAFTK\njRsAAACASrlxAwAAAFCpj8bmZM3wx/68tLGlwXoHKLbLx/v444+7+uTJk73ttra2uvr8+fNdXc5p\ny6/lffJx8nJkEf25a3nOXbmEWN4vz9PLdcT482CyfE5T5sL9bx7dtD/0dE1m+OzZs94+eem3Dcww\notEcaxmLQ/uUjMX3j1NLhsaia+oSNZlhLWNxaJ+SsSjHCZrMcNnX07zMcHmsBjKMaDTHWsaiz8V3\nWs5waJ/SvBnquAEAAAColBs3AAAAAJVaeKrUey+k98nblO+f24pyXb5v/vnEiRMz63K7obpcTiy3\nIObzK7fLP49tt0gL41gb3P65H3Xr29g5yfBwx5hhhBxnbtdYjjKcsV1jGUbIceZ2jeUowxnbNZZh\nhBxnbtdYjjKcsV1jGUbIceZ2jeUowxnbHXeGOm4AAAAAKuXGDQAAAEClThy+Sd9+i89Q+9RhFnmi\ndn6ic34q9dh7jE0Bm/q07rGnQE8xtWVs2cc9jAynqzXDCDnOo9YcZThdrRlGyHEeteYow+lqzTBC\njvOoNUcZTldrhhFynEetOcpwulVlqOMGAAAAoFJu3AAAAABUyo0bAAAAgErN/YybqUtfTdk/1+Xc\nsKE5aWNzwT703Mbmp0097iLLhI2931FoMcPyvw/NU9yUDJdxDDkezlhc3KZkuIxjyPFwxuLh/33T\nr6fLOIYcD2csHv7fNz3DZRzD5+LhjMXD//u6jUUdNwAAAACVcuMGAAAAoFIfjS2NNcNcG7MUy+6D\nk+HqHUUvoxxXz1hsn7G4HozF9hmL68FYbJ+xuB6MxfYdmuG8N24AAAAAWBFTpQAAAAAq5cYNAAAA\nQKXcuAEAAAColBs3AAAAAJVy4wYAAACgUm7cAAAAAFTKjRsAAACASrlxAwAAAFApN24AAAAAKuXG\nDQAAAECl3LgBAAAAqJQbNwAAAACVcuMGAAAAoFJu3AAAAABUyo0bAAAAgEq5cQMAAABQKTduAAAA\nACp1Ys7t/ziSs2DMR0t+Pxmu3rIzjJDjcTAW22csrgdjsX3G4nowFttnLK4HY7F9h2Y4742b+NOf\nZjfpfPTR7GP98cdw7kP7lPvlemyfRd57bJ+h4479TlPPacp7vH37dqHjHEaG7WcYIcex/ec5J2Px\ncDIcJ8f2c5Rh+xlGyHFs/3nOyVg8nAzHybH9HGVYX4Zz37iZcsBF/oClofcY+0NPDSf/vMh5j53D\nmA/93Y/aOmRYXmSmXgzWJcOI9cjRWGw/Q2NRjlPUnqMMD1d7hhHrkaPPRRkepvYMI9Yjx02/pq5D\nhq2ORc+4AQAAAKiUGzcAAAAAlXLjBgAAAKBSH8350J0/Pv7443fFgg/r6R18gYcOTX3w0aJz16Zs\nN/YAoUUezFS+3/7cyd9//z0ilv+UcBk2n2GEHCOi+RxlGM1nGCHHiGg+RxlG8xlGyDEims9RhtF8\nhhFyjIjmc5Rh1JehjhsAAACASrlxAwAAAFCpuZcD328LGlsea2or0iItRvttW7O2y8uz5frEif6v\nOXSu/2tTmim/9ubNm95rQ8uL1bqcmwzbzzBCjhHt5yjD9jOMkGNE+znKsP0MI9rMsdxnaP9NybHF\nDI3F98mx/RxlWF+GOm4AAAAAKuXGDQAAAECl5p4qNcXUdqi8XW5zKn/OrVKnTp3qbXf69OmuPnPm\nTFefO3du5n+PiDh58uTMc3v+/Hnv52fPnnX13t7ezDoi4uXLl12dW6rKJ0cPPZl6rAXtuMjwnZYz\njJDjvpZzlOE7LWcYIcd9Lecow3dazjBCjvtazlGG77ScYYQc97WcowzfWVWGOm4AAAAAKuXGDQAA\nAECl3LgBAAAAqNTcz7iZdxmrcvv8c57HVi75lee1ffLJJ12d57FFRFy+fLmrr1692tVff/11V1+5\ncqW3T36/vOTXzs5Ob7vbt2939X/+85+uvnPnTm+7R48edXWeI/f69evedvnnoblvqyDD9jOMkGNE\n+znKsP0MI+QY0X6OMmw/wwg5RrSfowzbzzBCjhHt5yjD+jLUcQMAAABQKTduAAAAACo191SpoWWr\n8lJeeZuybWrqkl+5PerSpUtd/Ze//KW33Y0bN7r6b3/7W1f/9a9/7eqvvvqqt8/58+e7Orcy3b17\nt7fdrVu3uvqf//zn4Ln++OOPXT3WDpX/LmNLiB21dc7w3r17ve3+9a9/dfU6ZVieS7aqHMtMrl+/\n3tVynEaG7WdYnku2DtdUn4syjGgjw/JcsnXIcVOuqcedoc/F5ZBj+zked4aup+/TcQMAAABQKTdu\nAAAAACo191SpfWU71FA7Vfnfc9vUyZMnuzo/9Tmi3yp17dq1rs6tURERf//737v65s2bXZ1b4i5e\nvNjbJ7c95fals2fP9rbLbV25vWpvb6+33e7uble/ePGiq1+9etXbbujp3FP/lsvWcoanT5/u6pxN\n+QTyfK4563XJcJ5j15jj0FjctBxbztBYnP/YNeY4dSzmz8V1zHFdMsyrZ4xluI7fbeY59lHn+I9/\n/GPma1OvqVM/F9cxx1oy/NDPxU3+bjPPscdyHFp1KKK+HI3FA7VdT9fhO6qOGwAAAIBKuXEDAAAA\nUCk3bgAAAAAqNfczbvbnZo3Nycrzt/Jc6ojh+W7l82XyHLUvv/yyq/M8toiIb775pqvzHLk8j+23\n337r7ZOX4srnWv5OeV7c9vZ2V+elxcpzz/Mw8+9aGjvuUdvUDC9cuNDVrWeYj197jnmuqBxnH7uW\nDPPPMpyuthxdU+fXSobLHovr9N0mH1+OB1rL8bgzzEsOR/hcXNQyczxx4uCfq7XnaCweWPb19Ouv\nv+7qTR2LOm4AAAAAKuXGDQAAAECl5p4qtd9yNLTM1Tyv5Zaq3EIV0W9N+uyzz7r68uXLve1ya9OD\nBw+6+smTJ12dl+4q5eXAcntbKS+tOSa3ZJXtUPm1XK+aDMe1kGE+fo05Pnz4sKt//PHHrpZjX20Z\n5rbPPBZlOK62HIfG4uPHj7tajn2tZGgsjqstx3xNleM0x51hriNkuKjjyDGPPzl+uOMeiz4X36fj\nBgAAAKBSbtwAAAAAVGrhVaVKY09TnvJe+YnhERGffPJJV+cnOJdPrM6tUvfv3+/q//73v1398uXL\nwff+85//PPN8ymPt7e119bNnz3rbvXjxoqvzk63LVqvcRlXDU8JLMnynhQzL42dyfKeFHGXYfobl\n8TM5vtNCjqvKMOcmw+UzFtvP0VhsP8Py+NlR5pj/7nL8cK6n9WWo4wYAAACgUm7cAAAAAFTKjRsA\nAACASi38jJtyaaupc7aG5nyV8922tra6+syZM11dziHL891+/fXXrt7Z2enqctmxvBxYXlosLxUX\nEfH69euuznPcnj592tsuv5bPb+xvkl8rtxtbWm0ZZNh+hvkYcoyZr7WQowzbzzAfQ44x87UWclxV\nhvlvK8PlW7exmI+zKTkai+1nmI+xLjkai7PPaYzr6fuvfWiGOm4AAAAAKuXGDQAAAECl5p4qtd/i\nU7b2DLVDle1V+bW89FZudYvoL9+V25nK98vLcr169aqr83JiefmviIivvvqqq69evTpzn4iIu3fv\ndnVujdrd3e1tl4+bz2+s/Wlsu6Ne7u04Msyvle+Xl26T4XS15Wgszq+2DI3FxdSWo7E4v2VmmJdK\nleEBY1GOUxiL7WeYjyHHA63l6HpaX4Y6bgAAAAAq5cYNAAAAQKUWnipVGmoRKv97bnfLbVPlU6Dz\n9Ki8XfmE6ezixYtdnVulbty40dvu2rVrXX3+/Pmuzi1YERG//fZbV+cpBPnJ0xH9Fqih9rHy56F6\nFY4jw7xPmWE+HxlOV1uOmRynqS3DobH4+eefd/X169d7+2x6hhH15ZgZi9MsM8O8YoYMV6uVseia\nOsxYbD/DiHZyNBaHuZ7Wl6GOGwAAAIBKuXEDAAAAUKm5p0pNaY8ae0Ly0BOmy7apoelRb9686W2X\n99ve3u7qmzdvdvW3337b2ye3N+anQ9+/f7+3XT5WPofcxlXKr01tm1o1Gbaf4djxV5Vj2cI4Jcfv\nvvuut8/ly5e7ehNzbDFDY/F9LeZoLPa1mKGx+D45tp+jDNvPcOz4Nefoc7HvuDP078UZx1zaOwEA\nAACwVG7cAAAAAFTKjRsAAACASi3tGTdTt88/5+Xdyjlkefmt58+fd3WeBxcxPN/t0qVLXZ2X/yo9\ne/asqx8/ftx77enTp12d5/Dl846IOH369OD5DcnvV84PPOr5jDJsP8NFjlFDjufOnRs8v03MscUM\ny7GY/2abmOEix6ghx3IsbnqOLWZoLL5vHXLMpuaYtZ7jOmS4yFjMWs9wkWPUkOMyPhez1nNsMcN1\n//eijhsAAACASrlxAwAAAFCpuadK7bf4LNqelVuOcovR27dve9vlVqlHjx51dW6nioi4cOFCV794\n8aKrd3Z2unpra6u3Tz733d3drr57925vu/xaPr+xpcHGlkXL8ntM3WdZ1i3DJ0+edPW9e/d6261r\nhvmY65KjsTi/2jI0FtcjR2NxfjJ8/z2MxdXlOHX52hZylGH7GeZjynG2FnLc1Axr/lzUcQMAAABQ\nKTduAAAAACo191SpfWOtPrktqWwxyj/n7XJrWUT/yc8PHz7s6pcvX/a2y21U+Zzyccp9Tp06NfO1\n8gnTuXUrK1u88rkP1eX5jf33VTztfdZxh85hGRnmNjYZLtcycsyMxQMtjcWsxrFY7rdvXTKcdeyh\n8zAWD9SW4yaMxXXPcNaxh87DWDxQW46+ox5oNcNZxx46j5ZzXPfvN66ns8/9ODLUcQMAAABQKTdu\nAAAAACrlxg0AAABApRZ+xk05J2torlm53diyWlmex5bnpOWlxcqf81K0586d6+ozZ8709snLieW5\na+W55vfO25Xz2PJruS7nseWfx+YLrmq5t1VmmJdty0vCRcjwQy0jx7E5lrWNxfz7rUuOq8zwuMZi\nPtepY3Esp9oyjDAWM2NxthrGos/F9RuL65ij76gx87WWMozYjBwX+X7TUo6up/CoGeIAABikSURB\nVDHztePIUMcNAAAAQKXcuAEAAACo1MJTpUq55WiohSqi37qW25JOnjzZ225ra6urz54929W55Smi\n3xJ18eLFmdttb2/39snv9+bNm64ulwLLr+WlynId0W/ryu1eU5cGK9u1yqXHVqXmDMt9clvcIhnu\n7e31tluXDCPqzrEciznH/Hcfy/Hp06ddbSy2meHU6+mrV6+6urUMI9Y/R2PxQKsZbsJ3mwg5znq/\n1nKU4fvv11qGEXKc9X6t5SjD999vVRnquAEAAAColBs3AAAAAJWae6rUfovP2FOQc6tUud1QS1D5\n5Ojz58939eXLl2fWEf1WqfzaF1980dWffvppb5/cpvTo0aOuLtumdnZ2uvr+/ftd/eDBg952uY0q\nt1qVbVP5uLku/yZTn6S+qHXIMJ9fzik/Ub58LWeY64j2MszHX8ccjcXZ59BShlPHYusZ5uMvmmP5\nu+3zuXhgXcZibts2FpfPNbX9HNchw6Hr6aZkmI/fco7GYvvfbdYtQx03AAAAAJVy4wYAAACgUm7c\nAAAAAFTqSJYDz8q5XHk+WF5Gq9wuLyGW575duXKlt93Vq1e7Os9xu3Tp0sz3iujPN81z137++efe\ndj/88ENX37lzZ+b+Ef35bnn52vJ3ynP/cj30t1u1mjMs5wAOZfjTTz/1ttu0DCPqztFYnKalDPO8\nYGOxb2qOeW50bTkai8sdi3lu/6qup8bi8V1Tv/zyy5mvrTLHp0+fdnXLObb0uWgsDpPjOy3kOHVJ\n630tfbdpNUMdNwAAAACVcuMGAAAAoFILT5Uaa/XJLUFl61BeWnR3d7ery+W28pJfeWmv3CYVMbwM\nWW4NzXVExO3bt7v6+++/n1lHRNy6daurf/nll65+8uRJb7uXL192dW4FG1s+berSakfpqDPc3t7u\nahkenZbG4t7eXm+f3Kq4yTmOZZhzK7dzPT38tXUai66pR++ox+IyM3Q9HbbKa+pnn33W1fnvVL7/\ncY3F3M7fUo7G4gFj0XfUWVa1HPiY2jJc9+82Om4AAAAAKuXGDQAAAECl5p4qtd8SVbZD5Z/zU6RL\n+SnhuW2qbBXK75fbsMr3zk97zq1W2cOH/9/e/Xa3UVxxAL5pbOIAJiFNS0OBQs9pOe33/yjtq3Ia\n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\nse0cjcU3t+0MNzkW9+X/jPJaMjmeaSHHbWfo8/QiFTcAAAAAlTJxAwAAAFCppZdKnSvLocbKqcqf\n57Kpw8PDrp3v+hzRL5X6+OOPu3YujYqI+POf/zz4XC6Ju3nzZu+Ya9eude1cNlXevTpfay5zOj09\n7fV7+vRp137+/HnXfvnyZa/f2N25576X67YPGebSvF3McJlzbzrHP/3pT137888/79pTOeYSxJzP\nvuW4ixm+8847vX67nuEy596VHPNn767kWEuGq/xdlOHy525pLPq72GaGeSebqf8zjMXxHMd2HYrY\nbI6r/L+4iznuyljchb+LKm4AAAAAKmXiBgAAAKBSJm4AAAAAKrX0PW7O12ZNrcnK67fymrGI8fVu\n5VqzvEbtww8/7Np5HVtExO9+97uundfI5XVs3377be+YvBVXvtbyd8prG997772unbcWK689r6XL\nv2tp6rybJsP2M8znrz3HvFZUjsPnluFrrWWYz79vOd64caNrt55jbRl+8sknXVuG89WWo8/U5bWS\n4bq/oxqL4zkeHLz+d7X2sbhLObYyFvcpQxU3AAAAAJUycQMAAABQqaWXSp2XHI1tc7XMc7mkKpdQ\nRfRLk375y1927du3b/f65TKl7777rmvfvXu3a+etu0p5S7dcGlXK2/lNySVZZTlUfi63L1vNGT54\n8KBry3BabTnmMsM8Fp88edK15dgnw2ktZJjPL8dhLeRYc4b57+Ljx4+7tgwvqjlHY3GeVjL0HXVa\nKzkai+PmZDhFhhfbb0rFDQAAAEClTNwAAAAAVGrlXaVKU3dTnvNa+Y7hERFvv/121853cC7vWJ1L\niO/fv9+1//vf/3btFy9ejL72r371q8HrKc91enratU9OTnr9nj9/3rXzXebLUqtcRlXDXcJL684w\n5ybD9TMW289Rhu1nWJ4/k+OZFnKUYfsZlufP5HimhRxl2H6G5fkz/2ucaSFHY7G+DFXcAAAAAFTK\nxA0AAABApUzcAAAAAFRq5XvclFtbzV2zNbbmq1zvdnR01LWvX7/etcs1ZHm923/+85+u/fDhw65d\nbjuWtwPLW4vlbakjIn744Yeunde4PXv2rNcvP5evb+o9yc+V/Vbddm2uy8owv7cyXD9jsf0cZdh+\nhvkcm84xv6dyXC9jsf0M8zmMxRh8roUcjcX2M8zn8L9GDD7XQo7GYn0ZqrgBAAAAqJSJGwAAAIBK\nLb1U6rzEpyztGSuHKsur8nN5661cvhTR374rlzOVr5e3/Xr58mXXztuJ5e2/IiI++uijrn3nzp3B\nYyIi7t2717VzadTTp097/fJ58/VNlT9N9dv0dm/byDA/J8P1qG0s5i3y5DiPDNvPMJ9j0zmOlfzK\n8c2tM8O8Vaqx+NqujkU5rldt31FluJptfKb6X2O9/F2sL0MVNwAAAACVMnEDAAAAUKmVl0qVxkqE\nyp/nUqlcwljeBTqXSuV+5R2m8/XcvHmza+dSqc8++6x3zMcff9y1j4+Pu3YuwYqI+Pbbb7t2LrHL\nd56O6JdAjZWPlY/H2pdhGxnmY2S4HrWNxUyO88iw/Qwj6vtMzeQ4zzozzDtmGIuXy2dq+zm28nn6\n61//umt/+umnvX77nmHEdj5T/a+xXv4u1pehihsAAACASpm4AQAAAKjU0kul5pRHTd0heexu72XZ\n1Fip1KtXr3r98nE3btzo2p9//nnX/v3vf987JpdU5btD379/v9cvnytfQy79KuXn5pZNXbZtZ1iW\nvslwNdvO0Vh8czJsP8Op88vx4nO15ijD9jOcOr/vNxefqzXHbWdoLK6HHNvPUYb1ZajiBgAAAKBS\nJm4AAAAAKmXiBgAAAKBSa7vHzdz++XHeGqxcQ5a33/r++++7dl4HFzG+3u3WrVtdO2//VTo5Oena\njx8/7j337NmzwWPydUdEXLt2bfT6xuQ1geX6wE2vZ5Rh+xmuco5dyTG/163nKMP2M1zlHDXmmN+3\nfcxxGxmenp52bWNxPXZhLGb7mOMuZLjvn6ernEOOw/ZtLK777+KuZajiBgAAAKBSJm4AAAAAKrX0\nUqnzEp9Vy7NyyVEuMfrpp596/XK526NHj7p2LqeKiHjvvfe69vPnz7v2w4cPu/bR0VHvmHztT58+\n7dr37t3r9cvPzd0abGpbtCy/xtxj1kWG7WeYz7lvOebraz3HXcvwyZMnXfubb77p9dvVDPM5a8kx\nlwrLcZ5tZJhLtcttT32erqa2segzdXm7lqGxuBs5GovLm5thXh419XfRdxsVNwAAAADVMnEDAAAA\nUKmll0qdmyr1yWVJZYlRfpz75WUsEf07P+cSqBcvXvT65VK4fE35POUxb7311uBz5R2mc/ldVpZ4\n5Wsfa5fXN/Xzy7jb+9B5x65Bhq/VluHQuceuQ46v1ZbjZWb44MGDri3D9VpHjtk6chw7jxyH1Zih\nsbg8OQ5fe0s5XmaGvttszj58Ry2PO7crOW56LOalUr7bTFNxAwAAAFApEzcAAAAAlTJxAwAAAFCp\nle9xU67JGlsvWPab2lYry+vY8pZfeTuxiP5WY3mbr3fffbdrX79+vXdM3hIur10rrzW/du5XrmPL\nz+V2uY4tP55aL3hZ273JMAafm8qptgwj5JgZi8NyhnmNb35fy8cyXN46cpxa7yzHzZNhDD7XUoYR\ncsxazfEyM/TdZnP24TtqvtZd/F/D52kMPreNsajiBgAAAKBSJm4AAAAAKrXyUqlSLjkaK6GK6Jeu\n5bKkw8PDXr+jo6Ou/c4773TtXPIU0S+Junnz5mC/Gzdu9I7Jr/fq1auuXW4Flp/L283lbcsi+mVd\nudxr7tZgZblWufXYZZHhmZcvX3bt1jKMkOM5Y/G1mjPM7YjdyTCi7hzLY46Pj7t2ft/3PceaMzQW\n55PjmZZzrDlDn6fz1ZzjZY7Flv/XkOGZbYxFFTcAAAAAlTJxAwAAAFCppZdKnZf4TN0FOZdKlf3G\nSoLKO0fnMsPbt28PtiP6pVL5ud/85jdd+/333x+9vocPH3btfDfy8rn79+8PtiP6ZVS51Kosm8rl\nUbldvidz76S+Khm2n2E+/y7mWJYw7mqOMoz47rvvev1ayzCff9Ucy9/tXJlj3jlh3Tnm9/DRo0dd\ne19y3IWxOJbh3L+LrWeYz7/psVjz95vWczQW288wn7/lHI3F3c2w1e82Km4AAAAAKmXiBgAAAKBS\nJm4AAAAAKrWR7cCzci1XXg+Wt9Eq++UtxPLatw8++KDX786dO107r3G7detW1y7Xjz1+/Lhr57Vr\n//jHP3r9/v73v3ftr7/+umvn9aoR/fVueXu38nfKa/9ye+y9u2w1Z5hfK6KfgQz7as5x7lj85z//\n2eu3bzm2lOHYWNz3DCPm55jXRk/lmNeFy/FybGssfvjhh4PPTf1dzGv0/V3sW/dY3OT3m33Pce42\nuudq+Lsow/laytH/GsNqznDT322ePXvWtbeRoYobAAAAgEqZuAEAAACo1MpLpaZKfXJJUFk6lLff\nevr0adcut9u6ceNG185be+UyqYjxbchyKVNuR0R89dVXXfsvf/nLYDsi4osvvuja//73v7v2kydP\nev1evHjRtXMp2NT2aXO3VtukTWeYt2170wxPT097x+QyxX3OMMJYzFrNUYavtZphxHSOObuynxwX\nP1fDWFxHhnP/LubXl+HyjMXXWstxzlKCyxyLMnwz/td4rdUcfUd9LS+P2kaGKm4AAAAAKmXiBgAA\nAKBSSy+VOi+DKsum8uN8V/5SvsN0LpsqS4XGyoTL1853e853lc7lWg8ePOgd8+WXX3btXBqVy6ki\n+qVcuVQql7qV15TPO1UaNfb7la+xCdvIMP9OMlyPbeSYX28qx1y6msmxT4btZ5jPMZXjVGm/HM/U\nPhbXneHcv4tjGeadayIi7t6927W3leEUY9FYnKPFsSjDi2r+X0OO8/iOWl+GKm4AAAAAKmXiBgAA\nAKBSJm4AAAAAKnVlybXKP5+vS5uzXd9Qv3y+q1evdu3Dw8Nev6Ojo659fHzctcs1bfm5fEw+T96O\nLKK/di2vuSu3gcvH5XV6uR0xvdY2y9c0Zy3c/9fRzXuj52syw5OTk94xebu3PcwwotEcjcX+ZbSY\nYS1jceyYkrFYd47G4pkaMsxbm5bnaiDDCDleaEcYi+d8t3nNWKx7LI4dUzIWL56nlgw3NRZV3AAA\nAABUysQNAAAAQKVWXip14Yn0OrlP+fq5rCi3y9fNjw8ODgbbZb+xdrmdWC4HntpqPD+e6je3nHjs\nmPI9Or/2TZe+TV2TDBfbYoYRchzs11iOMhzo11iGEXIc7NdYjjIc6NdYhhFyHOzXWI4yHOjXWIYR\nchzs11iOMhzot+0MVdwAAAAAVMrEDQAAAEClDhZ36Tsv8Rkrn1pklbsx5zs657tST73G1BKwuXd6\nnrqT9xxzS8bWfd5FZDhfrRlGyHEZteYow/lqzTBCjsuoNUcZzldrhhFyXEatOcpwvlozjJDjMmrN\nUYbzXVaGKm4AAAAAKmXiBgAAAKBSJm4AAAAAKrX0PW7mbn015/jcLteGja1Jm1oLNnZt5c/H1rhN\nrU+be95Vtgmber1NkOH067eQ4TrOIcfFjMXFP9/3DNdxDjkuZiyubl8yXMc5jMXFjMXV7UuG6ziH\nsbiYsbi6VjNUcQMAAABQKRM3AAAAAJW6MrU11oClOrMW666Dk+Hl20Qtoxwvn7HYPmNxNxiL7TMW\nd4Ox2D5jcTcYi+1bmOGyEzcAAAAAXBJLpQAAAAAqZeIGAAAAoFImbgAAAAAqZeIGAAAAoFImbgAA\nAAAqZeIGAAAAoFImbgAAAAAqZeIGAAAAoFImbgAAAAAq9T+l4Io7c3LmYAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fa3f3026390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(20, 20))\n",
"for i in range(5000, 5100):\n",
" # 重建的图像\n",
" ax = plt.subplot(10, 10, (i+1)%5000)\n",
" plt.imshow(decoded_imgs[i].reshape(28, 28))\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": 36,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"1.6808656"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"encoded_imgs.mean()"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.00051966513"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_test.mean()"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0.00024039, 0.00023481, 0.00024137, 0.00024558, 0.00024049,\n",
" 0.00023667, 0.00024427, 0.00024408, 0.0002375 , 0.00023203,\n",
" 0.00023487, 0.00023932, 0.00023752, 0.00024236, 0.00024637,\n",
" 0.00023967, 0.00023459, 0.00024124, 0.00023601, 0.0002436 ,\n",
" 0.00023875, 0.00023812, 0.00023995, 0.00023822, 0.00024435,\n",
" 0.00023833, 0.00023803, 0.00023875],\n",
" [ 0.00023891, 0.00023591, 0.00023079, 0.0002347 , 0.0002391 ,\n",
" 0.00022964, 0.00023515, 0.00023816, 0.00024489, 0.00024024,\n",
" 0.00024509, 0.00024064, 0.00023044, 0.00023825, 0.00024286,\n",
" 0.0002425 , 0.00022821, 0.00024786, 0.00023531, 0.00023916,\n",
" 0.00024772, 0.00023565, 0.00024062, 0.0002404 , 0.00023578,\n",
" 0.00023649, 0.00024043, 0.00024652],\n",
" [ 0.0002416 , 0.00023617, 0.00023831, 0.00023974, 0.00023905,\n",
" 0.00023903, 0.00024547, 0.00024414, 0.00024253, 0.00024929,\n",
" 0.00024153, 0.00024592, 0.00024839, 0.00025683, 0.00025506,\n",
" 0.00025144, 0.00026149, 0.00026057, 0.00025028, 0.00025505,\n",
" 0.00024418, 0.00024148, 0.00023945, 0.0002388 , 0.000246 ,\n",
" 0.00024422, 0.00023408, 0.00024373],\n",
" [ 0.0002366 , 0.00024192, 0.00023799, 0.00024217, 0.00024331,\n",
" 0.00024081, 0.00023975, 0.00024018, 0.00024626, 0.00025454,\n",
" 0.00026507, 0.00027446, 0.0002841 , 0.00029869, 0.00032387,\n",
" 0.00032216, 0.00032831, 0.00030856, 0.00030626, 0.0002867 ,\n",
" 0.0002593 , 0.000246 , 0.00024542, 0.0002389 , 0.00024491,\n",
" 0.00024416, 0.00023918, 0.00024347],\n",
" [ 0.00023878, 0.00024665, 0.00023872, 0.0002381 , 0.00023842,\n",
" 0.00024329, 0.00023892, 0.00025248, 0.00026773, 0.00028598,\n",
" 0.00032854, 0.00037504, 0.00043483, 0.00051958, 0.00058326,\n",
" 0.00062531, 0.00061863, 0.00055241, 0.0004873 , 0.00040639,\n",
" 0.00034024, 0.00029358, 0.00026325, 0.00025372, 0.00023827,\n",
" 0.00023767, 0.00024265, 0.00023884],\n",
" [ 0.00024334, 0.00024622, 0.00023935, 0.00023917, 0.00024489,\n",
" 0.00025068, 0.00026407, 0.00028769, 0.00032638, 0.00039773,\n",
" 0.00048388, 0.00061391, 0.00079419, 0.00099213, 0.00115242,\n",
" 0.00122135, 0.00120164, 0.00108302, 0.00088596, 0.00069069,\n",
" 0.00050502, 0.0003967 , 0.00031941, 0.00028358, 0.00025328,\n",
" 0.00023503, 0.00024204, 0.0002377 ],\n",
" [ 0.00023712, 0.00023827, 0.00024837, 0.00024301, 0.00024913,\n",
" 0.00026313, 0.00028406, 0.0003286 , 0.00040779, 0.00054247,\n",
" 0.00072322, 0.0009438 , 0.00120811, 0.00146253, 0.00165808,\n",
" 0.00174436, 0.00170887, 0.00155693, 0.00130491, 0.00100964,\n",
" 0.00073441, 0.00051613, 0.00038388, 0.00031888, 0.00028171,\n",
" 0.00024946, 0.0002409 , 0.00023631],\n",
" [ 0.00023519, 0.00024235, 0.00024319, 0.00024347, 0.00024746,\n",
" 0.00027784, 0.00032358, 0.00039827, 0.00053427, 0.00073249,\n",
" 0.00099229, 0.00128106, 0.00154522, 0.0017634 , 0.0018777 ,\n",
" 0.00192127, 0.00189284, 0.00178942, 0.00157889, 0.00127387,\n",
" 0.00094218, 0.00065039, 0.00046057, 0.00034225, 0.00028442,\n",
" 0.00025453, 0.00024579, 0.00023446],\n",
" [ 0.00024313, 0.00023664, 0.00023819, 0.00024594, 0.00026584,\n",
" 0.00029207, 0.00035654, 0.00046996, 0.00064995, 0.00090997,\n",
" 0.00121802, 0.00149343, 0.00166863, 0.00173496, 0.00173034,\n",
" 0.00171721, 0.00172257, 0.00171765, 0.00162052, 0.00137536,\n",
" 0.00102911, 0.00071776, 0.00049383, 0.00035311, 0.0002879 ,\n",
" 0.00025571, 0.00024183, 0.00023865],\n",
" [ 0.00023302, 0.00023799, 0.00023447, 0.00024803, 0.00026246,\n",
" 0.00030138, 0.00037401, 0.00051183, 0.0007352 , 0.00104583,\n",
" 0.00135866, 0.00153742, 0.00154228, 0.00144476, 0.00135529,\n",
" 0.00135198, 0.00143553, 0.00153998, 0.00153942, 0.00135903,\n",
" 0.00103296, 0.00071696, 0.00047771, 0.0003454 , 0.00027036,\n",
" 0.00024341, 0.00024561, 0.0002392 ],\n",
" [ 0.00023427, 0.00023713, 0.00024866, 0.0002497 , 0.00026677,\n",
" 0.00029731, 0.00038141, 0.00054114, 0.00080521, 0.00111991,\n",
" 0.00137486, 0.00141479, 0.00127776, 0.0011137 , 0.00106761,\n",
" 0.00114222, 0.00127593, 0.00144328, 0.00146831, 0.00128469,\n",
" 0.00095562, 0.0006615 , 0.00046 , 0.00032842, 0.0002655 ,\n",
" 0.00025189, 0.00024296, 0.0002351 ],\n",
" [ 0.00024241, 0.00023375, 0.00024396, 0.00024329, 0.00026186,\n",
" 0.00029115, 0.00039077, 0.00056412, 0.00085406, 0.00118023,\n",
" 0.00135813, 0.00129122, 0.00110359, 0.00098885, 0.00102179,\n",
" 0.00114449, 0.00132889, 0.00148113, 0.00144841, 0.0012101 ,\n",
" 0.00087063, 0.00059802, 0.00043211, 0.00031909, 0.00026634,\n",
" 0.00024293, 0.00023858, 0.00024269],\n",
" [ 0.00023584, 0.0002367 , 0.00023986, 0.00024442, 0.00025379,\n",
" 0.00029911, 0.00040648, 0.0006067 , 0.00092408, 0.00122674,\n",
" 0.00134011, 0.00123958, 0.00107336, 0.00106153, 0.00120645,\n",
" 0.00140105, 0.00157307, 0.0016469 , 0.00148947, 0.00114038,\n",
" 0.00078284, 0.00054776, 0.00041381, 0.00032516, 0.00026315,\n",
" 0.00023232, 0.00023967, 0.00023994],\n",
" [ 0.00023114, 0.00023369, 0.00023827, 0.00024769, 0.00026115,\n",
" 0.00031625, 0.00042831, 0.00064319, 0.00096588, 0.00124644,\n",
" 0.00131705, 0.00123478, 0.00117586, 0.00132137, 0.00154436,\n",
" 0.0017439 , 0.0018328 , 0.00177934, 0.00150468, 0.00108516,\n",
" 0.00074903, 0.00053709, 0.00041185, 0.00033109, 0.0002728 ,\n",
" 0.00024052, 0.00024287, 0.00024157],\n",
" [ 0.00023998, 0.00023615, 0.00024354, 0.00024007, 0.00025924,\n",
" 0.00032267, 0.0004564 , 0.00068466, 0.0009873 , 0.00122025,\n",
" 0.00129418, 0.00127013, 0.00134048, 0.00160948, 0.00184622,\n",
" 0.00199068, 0.00194418, 0.00180816, 0.00147639, 0.00106382,\n",
" 0.00075869, 0.000537 , 0.00042576, 0.00033892, 0.00027555,\n",
" 0.00024162, 0.00024112, 0.00024646],\n",
" [ 0.00024479, 0.00024274, 0.0002439 , 0.00023752, 0.00026501,\n",
" 0.00032641, 0.00048376, 0.00069149, 0.00095929, 0.00115781,\n",
" 0.00124597, 0.00127918, 0.00144423, 0.00173106, 0.00193058,\n",
" 0.00198427, 0.00186683, 0.0017045 , 0.00139541, 0.00106027,\n",
" 0.00078842, 0.00058515, 0.00044563, 0.00034274, 0.0002761 ,\n",
" 0.00024049, 0.00022726, 0.00023501],\n",
" [ 0.00023474, 0.00024397, 0.00024218, 0.00023926, 0.00026785,\n",
" 0.00035198, 0.00049828, 0.00068304, 0.00088905, 0.00104749,\n",
" 0.00112714, 0.00121996, 0.00138734, 0.00161503, 0.00178498,\n",
" 0.00179735, 0.00170127, 0.00154674, 0.0013056 , 0.00104298,\n",
" 0.00080215, 0.00058239, 0.00043859, 0.00033784, 0.00027837,\n",
" 0.00025117, 0.00024258, 0.00024385],\n",
" [ 0.00023912, 0.00023469, 0.0002394 , 0.00024763, 0.00028015,\n",
" 0.00037039, 0.00050268, 0.00065713, 0.00081379, 0.00092946,\n",
" 0.0010035 , 0.00109349, 0.00121601, 0.00140039, 0.00156811,\n",
" 0.00160903, 0.00156038, 0.00144305, 0.00125231, 0.00104048,\n",
" 0.0007882 , 0.00057075, 0.00041528, 0.00032013, 0.00027357,\n",
" 0.00024863, 0.00023772, 0.0002429 ],\n",
" [ 0.00023674, 0.00024316, 0.00023621, 0.00025573, 0.00028746,\n",
" 0.00038074, 0.00051207, 0.00065532, 0.00078277, 0.00087702,\n",
" 0.0009566 , 0.00103137, 0.00111857, 0.00129789, 0.0014725 ,\n",
" 0.00155738, 0.00154651, 0.00144851, 0.00126986, 0.0010328 ,\n",
" 0.00076623, 0.0005464 , 0.00040619, 0.00031383, 0.00026236,\n",
" 0.00024702, 0.00023946, 0.00023776],\n",
" [ 0.00023582, 0.00024156, 0.00024456, 0.00025276, 0.00029933,\n",
" 0.00040227, 0.00054131, 0.00068928, 0.00083465, 0.00095407,\n",
" 0.0010488 , 0.00111105, 0.00122802, 0.00139288, 0.00156373,\n",
" 0.00164536, 0.00161522, 0.0014829 , 0.0012466 , 0.00095763,\n",
" 0.00069528, 0.00049605, 0.00036709, 0.0002958 , 0.00026029,\n",
" 0.000246 , 0.00024109, 0.00023094],\n",
" [ 0.00024207, 0.00023915, 0.00024019, 0.00025741, 0.00029283,\n",
" 0.00038568, 0.00053328, 0.00072009, 0.00092354, 0.00109131,\n",
" 0.00123124, 0.00134005, 0.00147838, 0.00164172, 0.00175974,\n",
" 0.00176998, 0.00165675, 0.00142539, 0.00112662, 0.00081807,\n",
" 0.00056839, 0.0004246 , 0.00033899, 0.00027396, 0.00026304,\n",
" 0.00024943, 0.00023594, 0.00024575],\n",
" [ 0.00024105, 0.00023707, 0.00024292, 0.00025802, 0.00027815,\n",
" 0.00035972, 0.0004965 , 0.00070413, 0.00094682, 0.0011797 ,\n",
" 0.00139067, 0.0015626 , 0.00172268, 0.0018465 , 0.0018672 ,\n",
" 0.00175499, 0.00152335, 0.00121384, 0.00088996, 0.00063094,\n",
" 0.0004568 , 0.00034448, 0.00029849, 0.00025793, 0.00025203,\n",
" 0.00024733, 0.00024219, 0.00024543],\n",
" [ 0.00024272, 0.00024569, 0.00024533, 0.00024801, 0.00026544,\n",
" 0.0002974 , 0.00040891, 0.00057558, 0.000813 , 0.00107368,\n",
" 0.00135819, 0.00157395, 0.00172018, 0.00176741, 0.00169415,\n",
" 0.00148489, 0.00117885, 0.00087855, 0.00063181, 0.00045888,\n",
" 0.0003526 , 0.00030161, 0.00026461, 0.00025317, 0.0002486 ,\n",
" 0.00023579, 0.00024012, 0.00024814],\n",
" [ 0.00023258, 0.0002394 , 0.00024349, 0.000234 , 0.0002507 ,\n",
" 0.00027256, 0.00031764, 0.00042215, 0.00057962, 0.00079886,\n",
" 0.00104072, 0.0012497 , 0.0013636 , 0.00136307, 0.00123228,\n",
" 0.00101754, 0.00076446, 0.00056198, 0.00042951, 0.00033282,\n",
" 0.00028913, 0.00026535, 0.00025406, 0.00024585, 0.00024437,\n",
" 0.00024099, 0.00023647, 0.00023943],\n",
" [ 0.00023973, 0.0002414 , 0.00024271, 0.00024363, 0.00024836,\n",
" 0.00024732, 0.00026328, 0.00029745, 0.00035657, 0.00044722,\n",
" 0.00055708, 0.00064915, 0.00070239, 0.00069102, 0.00062666,\n",
" 0.00053822, 0.00044539, 0.0003745 , 0.00031179, 0.00028686,\n",
" 0.00025476, 0.00024651, 0.00025042, 0.00024895, 0.00024792,\n",
" 0.00023955, 0.00023911, 0.00024375],\n",
" [ 0.00023709, 0.00023864, 0.00023081, 0.00024406, 0.00023584,\n",
" 0.00024419, 0.00025194, 0.00026444, 0.00028002, 0.00030468,\n",
" 0.00033503, 0.00034903, 0.00036472, 0.00037328, 0.0003524 ,\n",
" 0.00032018, 0.0003123 , 0.00029561, 0.00027335, 0.00026578,\n",
" 0.00024462, 0.00023999, 0.00024512, 0.00024482, 0.00024132,\n",
" 0.00023712, 0.00023186, 0.00024133],\n",
" [ 0.00023064, 0.00024115, 0.00023884, 0.00024126, 0.00023614,\n",
" 0.00023157, 0.00024051, 0.00025319, 0.00025824, 0.00025171,\n",
" 0.00027211, 0.00028033, 0.00027826, 0.00027339, 0.00026889,\n",
" 0.00026674, 0.00026029, 0.00025507, 0.00024392, 0.00024697,\n",
" 0.00024425, 0.0002376 , 0.00024468, 0.00023844, 0.00024222,\n",
" 0.00024773, 0.00024084, 0.00023033],\n",
" [ 0.00023831, 0.00024142, 0.00023693, 0.00024519, 0.0002366 ,\n",
" 0.00024047, 0.0002458 , 0.00024264, 0.00024746, 0.00024095,\n",
" 0.00024016, 0.00023785, 0.00024369, 0.00024515, 0.00024796,\n",
" 0.00024403, 0.00024483, 0.00023967, 0.00024407, 0.00023346,\n",
" 0.00023399, 0.00023934, 0.00023843, 0.00024481, 0.00024551,\n",
" 0.00024614, 0.00023915, 0.00023523]], dtype=float32)"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"decoded_imgs[0].reshape(28, 28)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [default]",
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment