為了使開發者更好的了解其開發的神經網絡模型,Keras Python深度學習庫提供了可視化神經網絡模型的工具。這對于産品示範和講解是非常有用的
在本文,你會學到如何在Keras中總結和可視化深度學習模型。

讀完本文後,你将知道:
如何建立你的深度學習模型的文本摘要。
如何建構你的深度學習模型的圖形。
在Keras開發深度學習模型的最佳實踐技巧。
<b>教程概述:</b><b></b>
本教程分為4個部分:
1.示例模型。
2.總結模型。
3.可視化模型。
4.最佳實踐經驗。
<b>示例模型:</b><b></b>
我們可以通過在Keras中定義一個簡單的多層Perceptron的模型來開始,我們可以使用它作為切入點,進而進入可視化的主題。
我們将要定義的模型有一個輸入變量,一個帶有兩個神經元的隐藏層,一個帶有一個二進制輸出的輸出層。
1
[1 input] -> [2 neurons] -> [1 output]
下面提供了該網絡的代碼清單:
<b>總結模型:</b><b></b>
Keras提供了一個總結模型的方法。
摘要是文本性的,包括以下資訊:
1.模型中的圖層和順序。
2.每層的輸出形狀。
3.每層中的參數(權重)的數量。
4.模型中參數(權重)的總數。
網絡模型的摘要生成可以通過調用模型上的summary()函數來建立,該函數傳回一個可以列印的字元串。
以下是更新後的示例,列印建立的網絡模型的摘要。
運作此示例可以列印下表:
我們可以清楚地看到每個圖層的輸出形狀和權重數量。
<b>可視化模型:</b><b></b>
網絡模型的摘要對于簡單的模型是有用的,但對于具有多個輸入或輸出的模型可能會造成混淆。
Keras還提供了一個函數來建立神經網絡模型的圖,可以使更複雜的模型更容易了解。
在Keras中plot_model()的功能是建立網絡模型圖的函數。使用這個函數你需要了解一些有用的參數:
1.model:(必填)你希望繪制的模型。
2.to_file:(必需)要将繪圖儲存到的檔案的名稱。
3.show_shapes :(可選,預設為False)是否顯示每個圖層的輸出形狀。
4.show_layer_names :(可選,預設為True)是否顯示每個圖層的名稱。
下面是繪制建立模型的更新示例。
運作示例用建立的模型的圖形建立檔案model_plot.png:
<b>實踐經驗:</b><b></b>
我通常建議在Keras中建立一個神經網絡模型的總結和圖形。
我推薦這個有幾個原因:
1.确認圖層順序。将順序API錯誤地添加圖層與功能性API錯誤地連接配接在一起這是很容易犯的錯誤。圖形可以幫助你确認模型是否按照你的預期方式連接配接。
2.确認每個圖層的輸出形狀。定義複雜網絡(如卷積和遞歸神經網絡)的輸入資料的形狀是很常見的。模型摘要和圖形可以幫助你确認網絡的輸入形狀是否符合你的要求。
3.确認參數。一些網絡配置可以使用很少的參數,例如在編碼器 -
解碼器遞歸神經網絡中使用TimeDistributed纏繞的密集層。檢視摘要可以幫助發現使用比預期更多的參數的情況。
<b>進一步閱讀:</b><b></b>
如果你想深入了解,你可以檢視以下的連結。
<b>作者資訊</b>
<b></b>
Dr. Jason Brownlee 是一名機器學習從業者,學術研究人員,緻力于幫助開發人員從入門到精通機器學習。
文章原标題《How to Visualize a Deep Learning Neural Network Model in Keras》
作者:Dr.Jason Brownlee譯者:虎說八道