Skip to content
Snippets Groups Projects
Commit ef216f4b authored by Saravanan G's avatar Saravanan G
Browse files

Upload New File

parent 27e8a1bd
No related branches found
No related tags found
No related merge requests found
%% Cell type:code id: tags:
```
from keras.datasets import mnist
from keras.layers import Input, Dense
from keras.models import Model
```
%% Cell type:code id: tags:
```
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
```
%% Cell type:code id: tags:
```
(X_train, _), (X_test, _) = mnist.load_data()
```
%% Cell type:code id: tags:
```
X_train = X_train.astype('float32')/255
X_test = X_test.astype('float32')/255
```
%% Cell type:code id: tags:
```
X_train = X_train.reshape(len(X_train), np.prod(X_train.shape[1:]))
X_test = X_test.reshape(len(X_test), np.prod(X_test.shape[1:]))
print(X_train.shape)
print(X_test.shape)
```
%% Output
(60000, 784)
(10000, 784)
%% Cell type:code id: tags:
```
input_img= Input(shape=(784,))
```
%% Cell type:code id: tags:
```
encoded = Dense(units=128, activation='relu')(input_img)
encoded = Dense(units=64, activation='relu')(encoded)
encoded = Dense(units=32, activation='relu')(encoded)
decoded = Dense(units=64, activation='relu')(encoded)
decoded = Dense(units=128, activation='relu')(decoded)
decoded = Dense(units=784, activation='sigmoid')(decoded)
```
%% Output
WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
%% Cell type:code id: tags:
```
autoencoder=Model(input_img, decoded)
```
%% Cell type:code id: tags:
```
encoder = Model(input_img, encoded)
```
%% Cell type:code id: tags:
```
autoencoder.summary()
```
%% Output
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) (None, 784) 0
_________________________________________________________________
dense_1 (Dense) (None, 128) 100480
_________________________________________________________________
dense_2 (Dense) (None, 64) 8256
_________________________________________________________________
dense_3 (Dense) (None, 32) 2080
_________________________________________________________________
dense_4 (Dense) (None, 64) 2112
_________________________________________________________________
dense_5 (Dense) (None, 128) 8320
_________________________________________________________________
dense_6 (Dense) (None, 784) 101136
=================================================================
Total params: 222,384
Trainable params: 222,384
Non-trainable params: 0
_________________________________________________________________
%% Cell type:code id: tags:
```
encoder.summary()
```
%% Output
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) (None, 784) 0
_________________________________________________________________
dense_1 (Dense) (None, 128) 100480
_________________________________________________________________
dense_2 (Dense) (None, 64) 8256
_________________________________________________________________
dense_3 (Dense) (None, 32) 2080
=================================================================
Total params: 110,816
Trainable params: 110,816
Non-trainable params: 0
_________________________________________________________________
%% Cell type:code id: tags:
```
autoencoder.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
```
%% Cell type:code id: tags:
```
autoencoder.fit(X_train, X_train,
epochs=50,
batch_size=256,
shuffle=True,
validation_data=(X_test, X_test))
```
%% Output
WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
Train on 60000 samples, validate on 10000 samples
Epoch 1/50
60000/60000 [==============================] - 6s 108us/step - loss: 0.2495 - acc: 0.7839 - val_loss: 0.1668 - val_acc: 0.7990
Epoch 2/50
60000/60000 [==============================] - 6s 103us/step - loss: 0.1506 - acc: 0.8048 - val_loss: 0.1371 - val_acc: 0.8067
Epoch 3/50
60000/60000 [==============================] - 6s 106us/step - loss: 0.1316 - acc: 0.8086 - val_loss: 0.1251 - val_acc: 0.8100
Epoch 4/50
60000/60000 [==============================] - 6s 106us/step - loss: 0.1217 - acc: 0.8102 - val_loss: 0.1169 - val_acc: 0.8102
Epoch 5/50
60000/60000 [==============================] - 6s 105us/step - loss: 0.1157 - acc: 0.8111 - val_loss: 0.1118 - val_acc: 0.8109
Epoch 6/50
60000/60000 [==============================] - 6s 106us/step - loss: 0.1115 - acc: 0.8117 - val_loss: 0.1077 - val_acc: 0.8112
Epoch 7/50
60000/60000 [==============================] - 6s 106us/step - loss: 0.1077 - acc: 0.8123 - val_loss: 0.1050 - val_acc: 0.8118
Epoch 8/50
60000/60000 [==============================] - 7s 109us/step - loss: 0.1050 - acc: 0.8126 - val_loss: 0.1030 - val_acc: 0.8117
Epoch 9/50
60000/60000 [==============================] - 6s 107us/step - loss: 0.1031 - acc: 0.8128 - val_loss: 0.1010 - val_acc: 0.8122
Epoch 10/50
60000/60000 [==============================] - 6s 104us/step - loss: 0.1015 - acc: 0.8130 - val_loss: 0.0993 - val_acc: 0.8123
Epoch 11/50
60000/60000 [==============================] - 6s 104us/step - loss: 0.0999 - acc: 0.8132 - val_loss: 0.0995 - val_acc: 0.8117
Epoch 12/50
60000/60000 [==============================] - 6s 104us/step - loss: 0.0989 - acc: 0.8133 - val_loss: 0.0986 - val_acc: 0.8128
Epoch 13/50
60000/60000 [==============================] - 6s 104us/step - loss: 0.0979 - acc: 0.8134 - val_loss: 0.0964 - val_acc: 0.8125
Epoch 14/50
60000/60000 [==============================] - 6s 104us/step - loss: 0.0970 - acc: 0.8135 - val_loss: 0.0955 - val_acc: 0.8126
Epoch 15/50
60000/60000 [==============================] - 6s 105us/step - loss: 0.0961 - acc: 0.8135 - val_loss: 0.0955 - val_acc: 0.8126
Epoch 16/50
60000/60000 [==============================] - 6s 104us/step - loss: 0.0953 - acc: 0.8136 - val_loss: 0.0940 - val_acc: 0.8127
Epoch 17/50
60000/60000 [==============================] - 7s 111us/step - loss: 0.0946 - acc: 0.8137 - val_loss: 0.0936 - val_acc: 0.8126
Epoch 18/50
60000/60000 [==============================] - 7s 113us/step - loss: 0.0941 - acc: 0.8137 - val_loss: 0.0929 - val_acc: 0.8130
Epoch 19/50
60000/60000 [==============================] - 6s 103us/step - loss: 0.0934 - acc: 0.8138 - val_loss: 0.0923 - val_acc: 0.8128
Epoch 20/50
60000/60000 [==============================] - 6s 105us/step - loss: 0.0929 - acc: 0.8139 - val_loss: 0.0924 - val_acc: 0.8127
Epoch 21/50
60000/60000 [==============================] - 6s 104us/step - loss: 0.0924 - acc: 0.8139 - val_loss: 0.0913 - val_acc: 0.8129
Epoch 22/50
60000/60000 [==============================] - 6s 105us/step - loss: 0.0918 - acc: 0.8139 - val_loss: 0.0908 - val_acc: 0.8131
Epoch 23/50
60000/60000 [==============================] - 6s 104us/step - loss: 0.0913 - acc: 0.8140 - val_loss: 0.0906 - val_acc: 0.8129
Epoch 24/50
60000/60000 [==============================] - 6s 105us/step - loss: 0.0909 - acc: 0.8140 - val_loss: 0.0900 - val_acc: 0.8130
Epoch 25/50
60000/60000 [==============================] - 6s 105us/step - loss: 0.0905 - acc: 0.8141 - val_loss: 0.0896 - val_acc: 0.8131
Epoch 26/50
60000/60000 [==============================] - 6s 104us/step - loss: 0.0900 - acc: 0.8141 - val_loss: 0.0893 - val_acc: 0.8132
Epoch 27/50
60000/60000 [==============================] - 6s 104us/step - loss: 0.0896 - acc: 0.8142 - val_loss: 0.0893 - val_acc: 0.8130
Epoch 28/50
60000/60000 [==============================] - 6s 106us/step - loss: 0.0892 - acc: 0.8142 - val_loss: 0.0884 - val_acc: 0.8133
Epoch 29/50
60000/60000 [==============================] - 6s 105us/step - loss: 0.0889 - acc: 0.8142 - val_loss: 0.0881 - val_acc: 0.8132
Epoch 30/50
60000/60000 [==============================] - 6s 105us/step - loss: 0.0885 - acc: 0.8143 - val_loss: 0.0878 - val_acc: 0.8134
Epoch 31/50
60000/60000 [==============================] - 6s 103us/step - loss: 0.0882 - acc: 0.8143 - val_loss: 0.0877 - val_acc: 0.8134
Epoch 32/50
60000/60000 [==============================] - 6s 106us/step - loss: 0.0879 - acc: 0.8143 - val_loss: 0.0871 - val_acc: 0.8134
Epoch 33/50
60000/60000 [==============================] - 6s 106us/step - loss: 0.0876 - acc: 0.8143 - val_loss: 0.0872 - val_acc: 0.8135
Epoch 34/50
60000/60000 [==============================] - 6s 105us/step - loss: 0.0872 - acc: 0.8144 - val_loss: 0.0866 - val_acc: 0.8135
Epoch 35/50
60000/60000 [==============================] - 6s 104us/step - loss: 0.0869 - acc: 0.8144 - val_loss: 0.0860 - val_acc: 0.8135
Epoch 36/50
60000/60000 [==============================] - 6s 106us/step - loss: 0.0867 - acc: 0.8144 - val_loss: 0.0862 - val_acc: 0.8134
Epoch 37/50
60000/60000 [==============================] - 6s 105us/step - loss: 0.0866 - acc: 0.8144 - val_loss: 0.0862 - val_acc: 0.8133
Epoch 38/50
60000/60000 [==============================] - 6s 101us/step - loss: 0.0863 - acc: 0.8144 - val_loss: 0.0856 - val_acc: 0.8135
Epoch 39/50
60000/60000 [==============================] - 6s 104us/step - loss: 0.0861 - acc: 0.8145 - val_loss: 0.0856 - val_acc: 0.8134
Epoch 40/50
60000/60000 [==============================] - 6s 103us/step - loss: 0.0859 - acc: 0.8145 - val_loss: 0.0856 - val_acc: 0.8134
Epoch 41/50
60000/60000 [==============================] - 6s 102us/step - loss: 0.0858 - acc: 0.8145 - val_loss: 0.0854 - val_acc: 0.8136
Epoch 42/50
60000/60000 [==============================] - 6s 103us/step - loss: 0.0856 - acc: 0.8145 - val_loss: 0.0850 - val_acc: 0.8135
Epoch 43/50
60000/60000 [==============================] - 6s 103us/step - loss: 0.0854 - acc: 0.8145 - val_loss: 0.0848 - val_acc: 0.8135
Epoch 44/50
60000/60000 [==============================] - 6s 103us/step - loss: 0.0853 - acc: 0.8145 - val_loss: 0.0852 - val_acc: 0.8135
Epoch 45/50
60000/60000 [==============================] - 6s 102us/step - loss: 0.0852 - acc: 0.8145 - val_loss: 0.0852 - val_acc: 0.8137
Epoch 46/50
60000/60000 [==============================] - 6s 102us/step - loss: 0.0850 - acc: 0.8145 - val_loss: 0.0849 - val_acc: 0.8137
Epoch 47/50
60000/60000 [==============================] - 6s 102us/step - loss: 0.0849 - acc: 0.8146 - val_loss: 0.0844 - val_acc: 0.8135
Epoch 48/50
60000/60000 [==============================] - 6s 102us/step - loss: 0.0847 - acc: 0.8146 - val_loss: 0.0841 - val_acc: 0.8136
Epoch 49/50
60000/60000 [==============================] - 6s 102us/step - loss: 0.0846 - acc: 0.8146 - val_loss: 0.0845 - val_acc: 0.8135
Epoch 50/50
60000/60000 [==============================] - 6s 105us/step - loss: 0.0845 - acc: 0.8146 - val_loss: 0.0841 - val_acc: 0.8136
<keras.callbacks.History at 0x7f08eaa0e160>
%% Cell type:code id: tags:
```
encoded_imgs = encoder.predict(X_test)
predicted = autoencoder.predict(X_test)
```
%% Cell type:code id: tags:
```
plt.figure(figsize=(40, 4))
for i in range(10):
# display original images
ax = plt.subplot(3, 20, i + 1)
plt.imshow(X_test[i].reshape(28, 28))
plt.gray()
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)
# display encoded images
ax = plt.subplot(3, 20, i + 1 + 20)
plt.imshow(encoded_imgs[i].reshape(8,4))
plt.gray()
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)
# display reconstructed images
ax = plt.subplot(3, 20, 2*20 +i+ 1)
plt.imshow(predicted[i].reshape(28, 28))
plt.gray()
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)
plt.show()
```
%% Output
%% Cell type:code id: tags:
```
```
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment