2017-05-09 20 views
2

私はちょうどKerasを使い始め、Q-learningサンプルプログラムを作成しました。テンソルボードコールバックを作成しました。これをmodel.fitの呼び出しに組み込みましたが、TensorBoardに表示されるのは、損失とネットワークグラフのスカラーサマリーだけです。興味深いことに、グラフの密集したレイヤーを開くと、「bias_0」というラベルの付いた小さなアイコンと「kernel_0」というラベルが付いていますが、TensorBoardの分布やヒストグラムのタブには表示されません。純粋なテンソルフローでモデルを構築しました。Keras - モデルの重みと偏りを表示することが可能です

は、私がTensorboardでこれらを有効にするために何かを行う必要がありますか? Kerasが生成するモデルの詳細を調べ、自分のtensor_summary()呼び出しを追加する必要がありますか?

+0

可能な重複(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()への呼び出しは、正常に動作するように役に立つと思われます。 – KeithWM

0

私はこれをデバッグし、問題ことがわかりました私がfit()を呼び出したとき、私は検証データを提供していませんでした。 TensorBoardコールバックは、検証データが提供されたときにのみ重みを報告します。それは少し制限があるようですが、私は少なくとも動作するものを持っています。 [本]の

+0

私はこれが当てはまるとは思わない。私の場合は、列車データとは違って検証データを処理する必要があるため、検証精度を計算するために自分のコールバックを書きました。同様に、あなた自身のコールバックを書くことができるかもしれません。 Kerasのバージョンで –

+0

I、(2.04など)を使用してきたTensorBoard.on_epoch_endに、2行目は次のとおりです '場合self.validation_dataとself.histogram_freq:' のでself.validation_dataが提供されない場合、テンソルの要約はスキップされます。 validation_dataを使用してサマリーのmodel.inputsとmodel.targetsを生成するように見えますが、ウェイトはモデルの一部であり、検証データが存在する必要はありませんが、ウェイトもこれでまとめられます。 –

関連する問題