mnist手寫資料集的識別算得上是深度學習的」hello world「了,所以想要入門必須得掌握。新手入門可以考慮使用keras框架達到快速實現的目的。
完整**如下:
#執行結果如下:1. 導入庫和模組
from keras.models import
sequential
from keras.layers import
conv2d, maxpool2d
from keras.layers import
dense, flatten
from keras.utils import
to_categorical
#2. 載入資料
from keras.datasets import
mnist
(x_train, y_train), (x_test, y_test) =mnist.load_data()
#3. 資料預處理
img_x, img_y = 28, 28x_train = x_train.reshape(x_train.shape[0], img_x, img_y, 1)
x_test = x_test.reshape(x_test.shape[0], img_x, img_y, 1)
#資料標準化
x_train = x_train.astype('
float32')
x_test = x_test.astype('
float32')
x_train /= 255x_test /= 255
#一位有效編碼
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)
#4. 定義模型結構
model =sequential()
model.add(conv2d(32, kernel_size=(5,5), activation='
relu
', input_shape=(img_x, img_y, 1)))
model.add(maxpool2d(pool_size=(2,2), strides=(2,2)))
model.add(conv2d(64, kernel_size=(5,5), activation='
relu'))
model.add(maxpool2d(pool_size=(2,2), strides=(2,2)))
model.add(flatten())
model.add(dense(1000, activation='
relu'))
model.add(dense(10, activation='
softmax'))
#5. 編譯,宣告損失函式和優化器
model.compile(optimizer='
adam
',loss='
categorical_crossentropy
',metrics=['
accuracy'])
#6. 訓練
model.fit(x_train, y_train, batch_size=128, epochs=10)
#7. 評估模型
score =model.evaluate(x_test, y_test)
print('
acc', score[1])
可以看出準確率達到了99%,說明神經網路在影象識別上具有巨大的優勢。
Python keras神經網路識別mnist
上次用matlab寫過乙個識別mnist的神經網路,位址在 這次又用keras做了乙個差不多的,畢竟,現在最流行的專案都是python做的,我也跟一下潮流 資料是從本地解析好的影象和標籤載入的。神經網路有兩個隱含層,都有512個節點。import numpy as np from keras.pre...
Python keras神經網路識別mnist
上次用matlab寫過乙個識別mnist的神經網路,位址在 這次又用keras做了乙個差不多的,畢竟,現在最流行的專案都是python做的,我也跟一下潮流 資料是從本地解析好的影象和標籤載入的。神經網路有兩個隱含層,都有512個節點。import numpy as np from keras.pre...
Python keras神經網路識別mnist
上次用matlab寫過乙個識別mnist的神經網路,位址在 這次又用keras做了乙個差不多的,畢竟,現在最流行的專案都是python做的,我也跟一下潮流 資料是從本地解析好的影象和標籤載入的。神經網路有兩個隱含層,都有512個節點。import numpy as np from keras.pre...