ディープラーニング ニューラルネットワーク MNIST

#最低限のニューラルネットワーク

import keras
from keras.datasets import mnist
from matplotlib import pyplot

# #MINSTデータ読み込み
(X_train, y_train),(X_test, y_test) = mnist.load_data()

#一次元の配列に変換して正規化
#データを28*28=768の一次元配列に変換
X_train = X_train.reshape(-1, 784).astype('float32') / 255
X_test = X_test.reshape(-1, 784).astype('float32') / 255

#ラベルをOne-Hotベクトルに変換
y_train = keras.utils.to_categorical(y_train.astype('int32'), 10)
y_test = keras.utils.to_categorical(y_test.astype('int32'), 10)

#入力と出力を指定
in_size = 28 * 28
out_size = 10

#モデル構造を定義
Dense = keras.layers.Dense
model = keras.models.Sequential()
model.add(Dense(512, activation='relu', input_shape=(in_size,)))
model.add(Dense(out_size, activation='softmax'))

#モデルを構築
model.compile(
    loss='categorical_crossentropy',
    optimizer='adam',
    metrics=['accuracy']
)   

#学習を実行
model.fit(X_train, y_train,
          batch_size=20,
          epochs=20)

#モデルを評価
score = model.evaluate(X_test, y_test, verbose=1)
print('正解率=', score[1], 'loss=', score[0])

# #データを4x8に出力
# for i in range(0, 32):
#     pyplot.subplot(4,8, i + 1)
#     pyplot.imshow(X_train[i], cmap='gray')
    
# pyplot.show()
Epoch 17/20
3000/3000 ━━━━━━━━━━━━━━━━━━━━ 11s 4ms/step - accuracy: 0.9982 - loss: 0.0052      
Epoch 18/20
3000/3000 ━━━━━━━━━━━━━━━━━━━━ 11s 4ms/step - accuracy: 0.9984 - loss: 0.0056      
Epoch 19/20
3000/3000 ━━━━━━━━━━━━━━━━━━━━ 11s 4ms/step - accuracy: 0.9983 - loss: 0.0054      
Epoch 20/20
3000/3000 ━━━━━━━━━━━━━━━━━━━━ 11s 4ms/step - accuracy: 0.9982 - loss: 0.0056      
313/313 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - accuracy: 0.9744 - loss: 0.1844   
正解率= 0.9793000221252441 loss= 0.14472191035747528
#多層パーセプトロンを利用する

#MLPでMNISTの分離問題に挑戦
import keras 
from keras.models
タイトルとURLをコピーしました