2016-11-17 3 views
0

NNをトレーニングするためにKeras w/Tensorflowバックエンドを使用しています。Kerasのデータのバッチで、一度に損失とモデルの両方の出力を得るには?

トレーニングにはtrain_on_batchを使用していますが、これは特定のバッチの損失を返します。そのバッチで出力分類を取得するにはどうすればよいですか?

これを行うには、現在、predictという別の呼び出しを行ってモデルの出力を取得しますが、train_on_batchはすでに入力バッチを「前方」に渡しているため、冗長です。

Caffeでは、画像をフィードフォワードすると、中間層の出力はnet.blobsに保存されますが、Keras/Tensorflowでは中間出力を取得するにはそれぞれの計算グラフを再実行する必要がありますhereのように、CPUにアクセスしたい中間出力。多くの/すべての中間層の出力にアクセスする方法はありますか?それぞれのグラフを再実行する必要はありませんか?

テンソルフロー固有の回避策はありません。

答えて

1

関数APIを使用する場合、これはかなりstraight forwardです。

+0

これは中間出力を返しますが、損失は戻さず、重みを更新しません。 – MohamedEzz

0

@ MohamedEzzの回答に加えて、トレーニングプロセス中に必要な操作を実行できるカスタムコールバックを作成することができます。彼らはあなたのコードonEpochEnd、onEpochStart、onTrainingEndなどを実行するメソッドを持っています... この方法で、バッチを保存することができます。

関連する問題