In [89]:
import keras
import numpy as np
# import matplotlib.pyplot as plt
# import seaborn as sns; sns.set()
from keras.utils import to_categorical

In [113]:
data = keras.datasets.cifar100.load_data()
num_categories = 100

In [114]:
(Xtrain, ytrain), (Xtest, ytest) = data
ytrain = to_categorical(ytrain, num_categories)
ytest = to_categorical(ytest, num_categories)

In [123]:
model = keras.models.Sequential()
model.add(keras.layers.Conv2D(64, input_shape=(32,32,3), kernel_size=(3,3), padding='same', activation='elu'))
model.add(keras.layers.Dropout(0.1))
model.add(keras.layers.MaxPool2D(pool_size=(2,2), padding='same'))

model.add(keras.layers.Conv2D(128, kernel_size=(3,3), padding='same', activation='elu'))
model.add(keras.layers.Dropout(0.1))
model.add(keras.layers.MaxPool2D(pool_size=(2,2), padding='same'))

model.add(keras.layers.Conv2D(256, kernel_size=(3,3), padding='same', activation='elu'))
model.add(keras.layers.Dropout(0.1))
model.add(keras.layers.MaxPool2D(pool_size=(2,2), padding='same'))

model.add(keras.layers.Conv2D(256, kernel_size=(3,3), padding='same', activation='elu'))
model.add(keras.layers.Dropout(0.1))
model.add(keras.layers.UpSampling2D((2,2)))

model.add(keras.layers.Conv2D(128, kernel_size=(3,3), padding='same', activation='elu'))
model.add(keras.layers.Dropout(0.1))
model.add(keras.layers.UpSampling2D((2,2)))

model.add(keras.layers.Conv2D(64, kernel_size=(3,3), padding='same', activation='elu'))
model.add(keras.layers.Dropout(0.1))
model.add(keras.layers.UpSampling2D((2,2)))

model.add(keras.layers.Conv2D(3, kernel_size=(3,3), padding='same', activation='elu'))

model.compile(optimizer=keras.optimizers.rmsprop(lr=0.0001, decay=1e-6), loss='categorical_crossentropy', metrics=['accuracy'])
model.summary()


_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_114 (Conv2D)          (None, 32, 32, 64)        1792      
_________________________________________________________________
dropout_96 (Dropout)         (None, 32, 32, 64)        0         
_________________________________________________________________
max_pooling2d_90 (MaxPooling (None, 16, 16, 64)        0         
_________________________________________________________________
conv2d_115 (Conv2D)          (None, 16, 16, 128)       73856     
_________________________________________________________________
dropout_97 (Dropout)         (None, 16, 16, 128)       0         
_________________________________________________________________
max_pooling2d_91 (MaxPooling (None, 8, 8, 128)         0         
_________________________________________________________________
conv2d_116 (Conv2D)          (None, 8, 8, 256)         295168    
_________________________________________________________________
dropout_98 (Dropout)         (None, 8, 8, 256)         0         
_________________________________________________________________
max_pooling2d_92 (MaxPooling (None, 4, 4, 256)         0         
_________________________________________________________________
conv2d_117 (Conv2D)          (None, 4, 4, 256)         590080    
_________________________________________________________________
dropout_99 (Dropout)         (None, 4, 4, 256)         0         
_________________________________________________________________
up_sampling2d_7 (UpSampling2 (None, 8, 8, 256)         0         
_________________________________________________________________
conv2d_118 (Conv2D)          (None, 8, 8, 128)         295040    
_________________________________________________________________
dropout_100 (Dropout)        (None, 8, 8, 128)         0         
_________________________________________________________________
up_sampling2d_8 (UpSampling2 (None, 16, 16, 128)       0         
_________________________________________________________________
conv2d_119 (Conv2D)          (None, 16, 16, 64)        73792     
_________________________________________________________________
dropout_101 (Dropout)        (None, 16, 16, 64)        0         
_________________________________________________________________
up_sampling2d_9 (UpSampling2 (None, 32, 32, 64)        0         
_________________________________________________________________
conv2d_120 (Conv2D)          (None, 32, 32, 3)         1731      
=================================================================
Total params: 1,331,459
Trainable params: 1,331,459
Non-trainable params: 0
_________________________________________________________________

In [124]:
model.fit(Xtrain, Xtrain)


Epoch 1/10
  768/50000 [..............................] - ETA: 849s - loss: 706.8015 - acc: 0.3824
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-124-388dbf3891e7> in <module>()
----> 1 model.fit(Xtrain, Xtrain)

~/anaconda/lib/python3.6/site-packages/keras/models.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, **kwargs)
    868                               class_weight=class_weight,
    869                               sample_weight=sample_weight,
--> 870                               initial_epoch=initial_epoch)
    871 
    872     def evaluate(self, x, y, batch_size=32, verbose=1,

~/anaconda/lib/python3.6/site-packages/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, **kwargs)
   1505                               val_f=val_f, val_ins=val_ins, shuffle=shuffle,
   1506                               callback_metrics=callback_metrics,
-> 1507                               initial_epoch=initial_epoch)
   1508 
   1509     def evaluate(self, x, y, batch_size=32, verbose=1, sample_weight=None):

~/anaconda/lib/python3.6/site-packages/keras/engine/training.py in _fit_loop(self, f, ins, out_labels, batch_size, epochs, verbose, callbacks, val_f, val_ins, shuffle, callback_metrics, initial_epoch)
   1154                 batch_logs['size'] = len(batch_ids)
   1155                 callbacks.on_batch_begin(batch_index, batch_logs)
-> 1156                 outs = f(ins_batch)
   1157                 if not isinstance(outs, list):
   1158                     outs = [outs]

~/anaconda/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py in __call__(self, inputs)
   2267         updated = session.run(self.outputs + [self.updates_op],
   2268                               feed_dict=feed_dict,
-> 2269                               **self.session_kwargs)
   2270         return updated[:len(self.outputs)]
   2271 

~/anaconda/lib/python3.6/site-packages/tensorflow/python/client/session.py in run(self, fetches, feed_dict, options, run_metadata)
    776     try:
    777       result = self._run(None, fetches, feed_dict, options_ptr,
--> 778                          run_metadata_ptr)
    779       if run_metadata:
    780         proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)

~/anaconda/lib/python3.6/site-packages/tensorflow/python/client/session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)
    980     if final_fetches or final_targets:
    981       results = self._do_run(handle, final_targets, final_fetches,
--> 982                              feed_dict_string, options, run_metadata)
    983     else:
    984       results = []

~/anaconda/lib/python3.6/site-packages/tensorflow/python/client/session.py in _do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)
   1030     if handle is None:
   1031       return self._do_call(_run_fn, self._session, feed_dict, fetch_list,
-> 1032                            target_list, options, run_metadata)
   1033     else:
   1034       return self._do_call(_prun_fn, self._session, handle, feed_dict,

~/anaconda/lib/python3.6/site-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)
   1037   def _do_call(self, fn, *args):
   1038     try:
-> 1039       return fn(*args)
   1040     except errors.OpError as e:
   1041       message = compat.as_text(e.message)

~/anaconda/lib/python3.6/site-packages/tensorflow/python/client/session.py in _run_fn(session, feed_dict, fetch_list, target_list, options, run_metadata)
   1019         return tf_session.TF_Run(session, options,
   1020                                  feed_dict, fetch_list, target_list,
-> 1021                                  status, run_metadata)
   1022 
   1023     def _prun_fn(session, handle, feed_dict, fetch_list):

KeyboardInterrupt: 

In [86]:
plt.imshow(Xtrain[1])
plt.show()



In [88]:
ytrain[1].argmax()


Out[88]:
29

In [ ]: