深度學習(全連線 keras手寫數字實現)

2021-09-28 10:44:20 字數 1988 閱讀 4787

所有**在f盤的計算機視覺目錄下。

1.先使用全連線的結合方式去做

from keras.utils import np_utils

from keras.datasets import mnist

(x_train_image,y_train_label),\

(x_test_image,y_test_label)= mnist.load_data()

3.資料的預處理

x_train =x_train_image.reshape(60000,784).astype('float32')

x_test =x_test_image.reshape(10000,784).astype('float32')

x_train_normalize=x_train/255

x_test_normalize=x_test/255

y_train_onehot=np_utils.to_categorical(y_train_label)

y_test_onehot=np_utils.to_categorical(y_test_label)

包括將資料reshape 成1行784列的向量,影象資料歸一化(這個很影響最後的資料,原因是什麼?),最後對labels進行one-hot編碼。

4.匯入keras的全連線層包

from keras.models import sequential

from keras.layers import dense

第乙個即使用來建立model的,第二個是用來做一些全連線層引數的設定

5.設定引數

model=sequential()

model.add(dense(units=256,input_dim=784,kernel_initializer='normal',activation='relu'))

model.add(dense(units=10,kernel_initializer='normal',activation='softmax'))

print(model.summary())

可以看到對模型unit神經元的個數  ,輸入引數的維度,以及隨機的權重(服從正太分布),還有啟用函式的設定

可以用最後乙個語句來輸出模型的框架

6.訓練編譯模型

model.compile(loss='mse',optimizer='adam',metrics=['accuracy'])     #'categorical_crossentropy'

train_history =model.fit(x=x_train_normalize,

y=y_train_onehot,validation_split=0.2,

epochs=10, batch_size=200,verbose=2)

編譯時候要指定loss 和optimizer ,最後乙個是評價的標準(metrics)

7.最後在進行模型的**

scores=model.evaluate(x_test_normalize,y_test_onehot)

print()

print('acc=',scores[1])

prediction=model.predict_classes(x_test)

print('prediction=',prediction[0])

使用evaluate評估模型的準確率;

perdict_classes使用模型來**;

這裡不說畫圖等的一些操作;

目前我們採用的是 全連線  單層神經元 ;

我們可以嘗試多層神經元、增加神經元的個數、來調節model的效果;

通過畫圖比較訓練集的訓練和驗證資料的acc可以判斷模型是否過擬合;

如果過擬合我們可以嘗試採用dropout的方式去解決;

深度學習 Keras實現手寫訓練

基於keras對mnist手寫資料集進行訓練 使用兩層神經網路 from keras.datasets import mnist import keras 深度學習框架 import keras.models 模型 from keras.models import sequential 神經網路 f...

深度學習 基於Keras的手寫體識別

from keras import models from keras import layers from keras.datasets import mnist 搭建網路 network models.sequential network.add layers.dense 512,activat...

機器學習8 深度學習 全連線

深度模型最直觀的解釋就是多層網路,最簡單的深度模型是全連線。深度網路的每個全連線層其實質就是乙個邏輯回歸模型,每層包括線性函式與啟用函式。如圖所示 通過多層組合,可以得到如下的解析模型 對於模型中的隱藏層,其實質工作就是feature extraction,因此,隱藏層出現了卷積 小波等。以影象為例...