手寫數字識別-小數據集


1.手寫數字數據集

  • from sklearn.datasets import load_digits
  • digits = load_digits()

 (1)導入數據包

 

 

 

 

 (2)讀取數據

 

 

 

2.圖片數據預處理

  • x:歸一化MinMaxScaler()
  • y:獨熱編碼OneHotEncoder()或to_categorical
  • 訓練集測試集划分
  • 張量結構

 (1)x:歸一化MinMaxScaler(),y:獨熱編碼OneHotEncoder()

 結果如圖:

 

 

 

3.設計卷積神經網絡結構

  • 繪制模型結構圖,並說明設計依據。

模型結構如圖:

 

設計理念依據:

 

(1)傳遞一個input_shape的關鍵字參數給第一層,input_shape是一個tuple類型的數據,其中也可以填入None,如果填入None則表示此位置可能是任何正整數。數據的batch大小不應包含在其中
(2)傳遞一個batch_input_shape的關鍵字參數給第一層,該參數包含數據的batch大小。該參數在指定固定大小batch時比較有用,例如在stateful RNNs中。事實上,Keras在內部會通過添加一個None將input_shape轉化為batch_input_shape
(3)有些2D層,如Dense,支持通過指定其輸入維度input_dim來隱含的指定輸入數據shape。一些3D的時域層支持通過參數input_dim和input_length來指定輸入shape。
(4)優化器optimizer:該參數可指定為已預定義的優化器名

(5)損失函數loss:該參數為模型試圖最小化的目標函數

(6)由於圖像尺寸較小,故卷積核尺寸設置為3×3,三個卷積-池化層的卷積核數量分別設置為16、32、64。

 

 

 

 

 

 

 

 

 

 

 

 

 

4.模型訓練

 

 

 

 

 

 

5.模型評價

  • model.evaluate()
  • 交叉表與交叉矩陣
  • pandas.crosstab
  • seaborn.heatmap

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM