Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

Jupyter notebook NIELSEN/src/keras1.ipynb

Project: AI
Views: 115
Kernel: Python 2 (SageMath)
'''Trains a simple deep NN on the MNIST dataset. Gets to 98.40% test accuracy after 20 epochs (there is *a lot* of margin for parameter tuning). 2 seconds per epoch on a K520 GPU. ''' from __future__ import print_function import numpy as np np.random.seed(1337) # for reproducibility from keras.datasets import mnist from keras.models import Sequential from keras.layers.core import Dense, Dropout, Activation, Flatten from keras.layers import Convolution2D, MaxPooling2D from keras.optimizers import SGD, Adam, RMSprop from keras.utils import np_utils batch_size = 10 nb_classes = 10 nb_epoch = 1 # the data, shuffled and split between train and test sets (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 print(X_train.shape[0], 'train samples') print(X_test.shape[0], 'test samples') # convert class vectors to binary class matrices Y_train = np_utils.to_categorical(y_train, nb_classes) Y_test = np_utils.to_categorical(y_test, nb_classes) model = Sequential() model.add(Dense(100, input_shape=(784,))) model.add(Activation('sigmoid')) model.add(Dense(input_dim =100, output_dim =10)) model.add(Activation('softmax')) sgd = SGD(lr=0.1, decay=0, momentum=0.0, nesterov=False) model.summary() #D, H, C = 1000, 100, 10 #model.add(Dense(input_dim =D, output_dim = H)) # model.add(Dense(input_dim =H, output_dim = C)) model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy']) history = model.fit(X_train, Y_train, batch_size=batch_size, nb_epoch=nb_epoch, verbose=0, validation_data=(X_test, Y_test)) score = model.evaluate(X_test, Y_test, verbose=0) print('Test score:', score[0]) print('Test accuracy:', score[1])
Using TensorFlow backend.
60000 train samples 10000 test samples ____________________________________________________________________________________________________ Layer (type) Output Shape Param # Connected to ==================================================================================================== dense_1 (Dense) (None, 100) 78500 dense_input_1[0][0] ____________________________________________________________________________________________________ activation_1 (Activation) (None, 100) 0 dense_1[0][0] ____________________________________________________________________________________________________ dense_2 (Dense) (None, 10) 1010 activation_1[0][0] ____________________________________________________________________________________________________ activation_2 (Activation) (None, 10) 0 dense_2[0][0] ==================================================================================================== Total params: 79,510 Trainable params: 79,510 Non-trainable params: 0 ____________________________________________________________________________________________________ Test score: 0.227122732595 Test accuracy: 0.9333