In [2]:
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD
from keras.datasets import mnist
from keras.utils import np_utils


Using Theano backend.

In [3]:
batch_size = 100
nb_classes = 10
nb_epoch = 50

(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train.reshape(60000, 784)
X_test = X_test.reshape(10000, 784)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')
X_train /= 255
X_test /= 255
Y_Train = np_utils.to_categorical(y_train, nb_classes)
Y_Test = np_utils.to_categorical(y_test, nb_classes)


Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz

In [4]:
#model
model = Sequential()
model.add(Dense(output_dim=10, input_shape=(784,), init='normal', activation='softmax'))
model.compile(optimizer=SGD(lr=0.05), loss='categorical_crossentropy', metrics=['accuracy'])
model.summary()


/home/micio1970/anaconda3/lib/python3.5/site-packages/ipykernel/__main__.py:3: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(input_shape=(784,), units=10, activation="softmax", kernel_initializer="normal")`
  app.launch_new_instance()
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_1 (Dense)              (None, 10)                7850      
=================================================================
Total params: 7,850.0
Trainable params: 7,850
Non-trainable params: 0.0
_________________________________________________________________

In [5]:
history = model.fit(X_train, Y_Train, nb_epoch=nb_epoch, batch_size=batch_size, verbose=1)

evaluation = model.evaluate(X_test, Y_Test, verbose=1)
print('Summary: Loss over the test dataset: %.2f, Accuracy: %.2f' % (evaluation[0], evaluation[1]))


/home/micio1970/anaconda3/lib/python3.5/site-packages/keras/models.py:826: UserWarning: The `nb_epoch` argument in `fit` has been renamed `epochs`.
  warnings.warn('The `nb_epoch` argument in `fit` '
Epoch 1/50
60000/60000 [==============================] - 0s - loss: 0.6670 - acc: 0.8375     
Epoch 2/50
60000/60000 [==============================] - 0s - loss: 0.4101 - acc: 0.8895     
Epoch 3/50
60000/60000 [==============================] - 0s - loss: 0.3694 - acc: 0.8986     
Epoch 4/50
60000/60000 [==============================] - 0s - loss: 0.3485 - acc: 0.9028     
Epoch 5/50
60000/60000 [==============================] - 0s - loss: 0.3353 - acc: 0.9061     
Epoch 6/50
60000/60000 [==============================] - 0s - loss: 0.3257 - acc: 0.9092     
Epoch 7/50
60000/60000 [==============================] - 0s - loss: 0.3185 - acc: 0.9108     
Epoch 8/50
60000/60000 [==============================] - 0s - loss: 0.3127 - acc: 0.9128     
Epoch 9/50
60000/60000 [==============================] - 0s - loss: 0.3081 - acc: 0.9140     
Epoch 10/50
60000/60000 [==============================] - 0s - loss: 0.3040 - acc: 0.9150     
Epoch 11/50
60000/60000 [==============================] - 0s - loss: 0.3006 - acc: 0.9161     
Epoch 12/50
60000/60000 [==============================] - 0s - loss: 0.2977 - acc: 0.9167     
Epoch 13/50
60000/60000 [==============================] - 0s - loss: 0.2949 - acc: 0.9177     
Epoch 14/50
60000/60000 [==============================] - 0s - loss: 0.2925 - acc: 0.9185     
Epoch 15/50
60000/60000 [==============================] - 0s - loss: 0.2905 - acc: 0.9186     
Epoch 16/50
60000/60000 [==============================] - 0s - loss: 0.2886 - acc: 0.9192     
Epoch 17/50
60000/60000 [==============================] - 0s - loss: 0.2869 - acc: 0.9204     
Epoch 18/50
60000/60000 [==============================] - 0s - loss: 0.2853 - acc: 0.9202     
Epoch 19/50
60000/60000 [==============================] - 0s - loss: 0.2838 - acc: 0.9211     
Epoch 20/50
60000/60000 [==============================] - 0s - loss: 0.2823 - acc: 0.9219     
Epoch 21/50
60000/60000 [==============================] - 0s - loss: 0.2812 - acc: 0.9221     
Epoch 22/50
60000/60000 [==============================] - 0s - loss: 0.2800 - acc: 0.9223     
Epoch 23/50
60000/60000 [==============================] - 0s - loss: 0.2788 - acc: 0.9229     
Epoch 24/50
60000/60000 [==============================] - 0s - loss: 0.2779 - acc: 0.9227     
Epoch 25/50
60000/60000 [==============================] - 0s - loss: 0.2768 - acc: 0.9229     
Epoch 26/50
60000/60000 [==============================] - 0s - loss: 0.2759 - acc: 0.9231     
Epoch 27/50
60000/60000 [==============================] - 0s - loss: 0.2750 - acc: 0.9234     
Epoch 28/50
60000/60000 [==============================] - 0s - loss: 0.2742 - acc: 0.9242     
Epoch 29/50
60000/60000 [==============================] - 0s - loss: 0.2735 - acc: 0.9242     
Epoch 30/50
60000/60000 [==============================] - 0s - loss: 0.2726 - acc: 0.9243     
Epoch 31/50
60000/60000 [==============================] - 0s - loss: 0.2719 - acc: 0.9246     
Epoch 32/50
60000/60000 [==============================] - 0s - loss: 0.2713 - acc: 0.9246     
Epoch 33/50
60000/60000 [==============================] - 0s - loss: 0.2706 - acc: 0.9250     
Epoch 34/50
60000/60000 [==============================] - 0s - loss: 0.2700 - acc: 0.9249     
Epoch 35/50
60000/60000 [==============================] - 0s - loss: 0.2693 - acc: 0.9251     
Epoch 36/50
60000/60000 [==============================] - 0s - loss: 0.2687 - acc: 0.9255     
Epoch 37/50
60000/60000 [==============================] - 0s - loss: 0.2680 - acc: 0.9255     
Epoch 38/50
60000/60000 [==============================] - 0s - loss: 0.2677 - acc: 0.9258     
Epoch 39/50
60000/60000 [==============================] - 0s - loss: 0.2670 - acc: 0.9259     
Epoch 40/50
60000/60000 [==============================] - 0s - loss: 0.2666 - acc: 0.9263     
Epoch 41/50
60000/60000 [==============================] - 0s - loss: 0.2660 - acc: 0.9263     
Epoch 42/50
60000/60000 [==============================] - 0s - loss: 0.2656 - acc: 0.9262     
Epoch 43/50
60000/60000 [==============================] - 0s - loss: 0.2651 - acc: 0.9264     
Epoch 44/50
60000/60000 [==============================] - 0s - loss: 0.2646 - acc: 0.9268     
Epoch 45/50
60000/60000 [==============================] - 0s - loss: 0.2642 - acc: 0.9269     
Epoch 46/50
60000/60000 [==============================] - 0s - loss: 0.2638 - acc: 0.9266     
Epoch 47/50
60000/60000 [==============================] - 0s - loss: 0.2634 - acc: 0.9272     
Epoch 48/50
60000/60000 [==============================] - 0s - loss: 0.2630 - acc: 0.9274     
Epoch 49/50
60000/60000 [==============================] - 0s - loss: 0.2626 - acc: 0.9272     
Epoch 50/50
60000/60000 [==============================] - 0s - loss: 0.2622 - acc: 0.9274     
 8000/10000 [=======================>......] - ETA: 0sSummary: Loss over the test dataset: 0.27, Accuracy: 0.92

In [ ]: