基於keras對mnist手寫資料集進行訓練
使用兩層神經網路
from keras.datasets import mnist
import keras # 深度學習框架
import keras.models # 模型
from keras.models import sequential # 神經網路
from keras.layers import dense, dropout, flatten # 處理神經網路層
from keras.layers import conv2d, maxpool2d # 處理平面資料
from keras import backend as k # 處理結束
batch_size =
128# 批量操作的大小
num_classes =
10# 識別的結果有十類
epochs =
12# 大小
img_rows, img_cols =28,
28(x_train, y_train)
,(x_test, y_test)
= mnist.load_data(
)# 載入資料
if k.image_data_format()==
"channels_first"
:# 格式
x_train = x_train.reshape(x_train.shape[0]
,1, img_rows, img_cols)
# 形狀調整
x_test = x_test.reshape(x_test.shape[0]
,1, img_rows, img_cols)
input_shape =(1
, img_rows, img_cols)
# y用於訓練資料形狀 1*28*28
else
: x_train = x_train.reshape(x_train.shape[0]
, img_rows, img_cols,1)
# 形狀調整
x_test = x_test.reshape(x_test.shape[0]
, img_rows, img_cols,1)
input_shape =
(img_rows, img_cols,1)
# y用於訓練資料形狀 1*28*28
x_train = x_train.astype(
"float32"
)x_test = x_test.astype(
"float32"
)x_train /=
255# xtrain矩陣的浮點型別, 0-255 256, 歸一化
x_test /=
255print
(x_train.shape[0]
,"樣本數量"
)print
(x_test.shape[0]
,"樣本數量"
)print
(x_train.shape, x_test.shape)
# 結果資料,0-9,10類,分類10個輸出結果
y_train = keras.utils.np_utils.to_categorical(y_train, num_classes)
y_test = keras.utils.np_utils.to_categorical(y_test, num_classes)
model = sequential(
)#新建乙個神經網路
model.add(conv2d(32,
activation=
"relu"
, input_shape=input_shape,
nb_row=3,
nb_col=3)
)model.add(conv2d(64,
activation=
"relu"
, nb_row=3,
nb_col=3)
)model.add(maxpool2d(pool_size=(2
,2))
)# 搜尋最優結果
model.add(dropout(
0.35))
# 輸出係數
model.add(flatten())
# 展平
model.add(dense(
128,activation=
"relu"))
model.add(dropout(
0.5)
)# 輸出係數
model.add(dense(num_classes,activation=
"softmax"))
model.
compile
(loss=keras.metrics.categorical_crossentropy,
# 訓練的損失函式
optimizer=keras.optimizers.adadelta(),
# 優化器
metrics=
["accuracy"])
# 精確
model.fit(x_train, y_train,
batch_size=batch_size,
# 批量處理的數量
epochs= epochs,
# 訓練次數
verbose=1,
# 行為區別
validation_data=
(x_test, y_test)
)# 驗證的資料
score =
(model.evaluate(x_test, y_test, verbose=0)
)print
(score)
# 識別的分數
深度學習(全連線 keras手寫數字實現)
所有 在f盤的計算機視覺目錄下。1.先使用全連線的結合方式去做 from keras.utils import np utils from keras.datasets import mnist x train image,y train label x test image,y test labe...
深度學習 基於Keras的手寫體識別
from keras import models from keras import layers from keras.datasets import mnist 搭建網路 network models.sequential network.add layers.dense 512,activat...
Keras深度學習 卷積神經網路 手寫數字識別
引言 最近在閉關學習中,由於多久沒有寫部落格了,今天給大家帶來學習的一些內容,還在學習神經網路的同學,跑一跑下面的 給你一些自信吧!nice 奧里給!正文 首先該impor的庫就不多說了,不會的就pip install something that you got it 備註 mnist.npz資源...