2017-05-09 46 views
2

我剛剛開始使用Keras並構建了一個Q-learning示例程序。我創建了一個張量板回調函數,並將其包含在對model.fit的調用中,但TensorBoard中唯一顯示的是丟失和網絡圖的標量總結。有趣的是,如果我打開圖中的密集圖層,我會看到一個標有「bias_0」的小圖標和一個標有「kernel_0」的小圖標,但我沒有看到它們出現在TensorBoard中的分佈或直方圖選項卡上,我在純張量流中建立了一個模型。Keras - 是否可以查看模型的重量和偏差

我需要做其他事情才能在Tensorboard中啓用這些功能嗎?我是否需要查看Keras生成的模型的細節並添加我自己的tensor_summary()調用?

+0

[this]的可能重複(http://stackoverflow.com/q/40444083/1586200)。 –

+0

我有興趣使用Tensorboard輸出和分析重量,而不僅僅是打印出來。也許.get_weights()會給我一些東西,我可以饋入Tensorboard。 –

回答

1

您可以通過.get_weights()獲得每層和整個模型的權重和偏差。

例如,如果你的模型的第一層是你想擁有你的重量和偏見的緻密層,你可以讓他們:

weights, biases = model.layers[0].get_weights() 
+0

這可能有點用處,但問題是關於張量板,並且我不認爲對model.layers [i] .get_weights()的調用可能與使tensratboard正常工作一樣有用。 – KeithWM

0

我調試這一點,並發現問題當我調用fit()時,我沒有提供任何驗證數據。 TensorBoard回調只會在提供驗證數據時報告權重。這似乎有點限制,但我至少有一些工作。

+0

我不認爲這應該是這種情況。就我而言,我必須以不同於列車數據的方式處理驗證數據,所以我編寫了自己的回調函數來計算驗證的準確性。所以類似地,你也許可以編寫自己的回調。 –

+0

在Keras的版本我已經使用(包括2.04),在TensorBoard.on_epoch_end,第二行是: '如果self.validation_data和self.histogram_freq:' 所以如果不提供self.validation_data,所述張量摘要將被跳過。它看起來像validation_data被用來爲摘要生成model.inputs和model.targets,但是權重也被集成在內,儘管權重是模型的一部分,並且不需要驗證數據存在。 –

相關問題