#!/usr/bin/env python # coding: utf-8 # In[1]: from keras.layers.core import Dense, Activation from keras.models import Sequential from keras.optimizers import Adam from sklearn import datasets, preprocessing import numpy as np # # MNIST - Keras (Backend: TensorFlow) # # 以下のTensorFlowのTutorialと見比べてみて下さい # http://www.tensorflow.org/tutorials/mnist/beginners/index.html # ## MNIST Data # In[2]: # データセットの用意 mnist = datasets.fetch_mldata('MNIST original') X = mnist.data.astype(float) X /= 255 y = preprocessing.LabelBinarizer().fit_transform(mnist.target) # 訓練用とテスト用にデータを分割 train_size = 60000 X_train, X_test = np.split(X, [train_size]) y_train, y_test = np.split(y, [train_size]) # ## Implementing the Regression # In[3]: model = Sequential() model.add(Dense(10, input_shape=(784,), init='zero')) model.add(Activation("softmax")) # ## Training # In[4]: # モデルをコンパイル model.compile(loss='categorical_crossentropy', optimizer=Adam(lr=0.01)) # In[5]: model.fit(X_train, y_train, nb_epoch=10, batch_size=100) # ## Evaluating # In[6]: model.evaluate(X_test, y_test, show_accuracy=True) # Accuracy: 0.9204 # In[ ]: