深度學習 Keras MNIST 模型可視化 (Cambridge Coding Academy 補充一)

来源:互联网 发布:软件项目可行性分析 编辑:程序博客网 时间:2024/06/16 19:14


Cambridge Coding Academy 的 Deep learning for complete beginners: Recognising handwritten digits 是一篇介紹深度學習開發工具 Keras 用在識別手寫數字 MNIST 的文章 (以下簡稱 CCA 原碼), 本文及後續文章補充說明幾個可視化的部分, 本文先說明深度學習神經網路模型的可視化, 後續文章再討論學習過程的可視化及學習結果的可視化。


深度學習神經網路是一個多層的網路, 在 CCA 原碼中加上以下三行就可以印出 CCA 原碼所建構的神經網路:

from keras.utils.visualize_util import plotplot(model, to_file='model010.png', show_shapes=True)model.summary()


  • 第 1 行 導入 Keras 繪圖庫
  • 第 2 行 輸出網路模型到 png 文件
  • 第 3 行 輸出網路模型的文字描述

結合輸出的兩個圖表可以看出 CCA 原碼建構了一個四層的神經網路: 

  • 第 1 層 輸入層 (input_1): 本層有 784 個輸入 (784 = 28 x 28 是每張 MNIST 圖片的大小)
  • 第 2 層 Dense 層 (dense_1): 本層有 512 個神經元, 每個神經元和第 1 層的每個輸入完全連接, 這層總共有 401920 個學習參數 (401920 = (784 + 1) x 512, "784" 是輸入, "+1" 是 bias 參數)
  • 第 3 層 Dense 層 (dense_2): 本層有 512 個神經元, 每個神經元和第 2 層的每個神經元完全連接, 這層總共有 262656 個學習參數 (262656 = (512 + 1) x 512, 第 1 個 "512" 是第二層神經元的個數, "+1" 是 bias 參數)
  • 第 4 層 Dense 層 (dense_3): 本層是輸出層, 共有 10 個神經元, 分別對應數字的 0, 1, 2, ..., 9, 每個神經元和第 3 層的每個神經元完全連接, 這層總共有 5130 個學習參數 (5130 = (512 + 1) x 10, "512" 是第三層神經元的個數, "+1" 是 bias 參數) 

這個神經網路可以識別  MNIST 手寫數字嗎? 正確率是多少? 有哪些字識別錯誤? ... 下回分解。



0 0
原创粉丝点击