深度學習 Keras實現手寫訓練

2021-09-11 02:13:26 字數 2988 閱讀 1417

基於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資源...