Keras(テンソルフローバックエンド付き)モデルをトレーニングするためのカスタム目的を書いていますが、中間計算をデバッグする必要があります。簡単にするために、のは、私が持っているとしましょう:ケラス中間層またはテンソルを使った目的変数のデバッグ
def custom_loss(y_pred, y_true):
diff = y_pred - y_true
return K.square(diff)
私はトレーニング中に、例えば、中間変数diffやその形状にアクセスするための簡単な方法を見つけることができませんでした。この単純な例では、値を出力するためにdiffを返すことができますが、実際の損失はより複雑で、エラーをコンパイルせずに中間値を返すことはできません。
Kerasの中間変数を簡単にデバッグする方法はありますか?
@nemoに追加するために、Kerasには 'K.print_tensor()'を通してこれらのバックエンド印刷機能が拡張されています。https://github.com/fchollet/keras/blob/master/keras/backend/theano_backend.py# L934&https://github.com/fchollet/keras/blob/master/keras/backend/tensorflow_backend.py#L1896私は 'print_tensor()'関数を使って試してみませんでしたが、@nemoは 'Lambda'レイヤーで使う必要があることに注意してください。 – indraforyou
ああ、これが存在するのを忘れていました。テンソルの完全な文字列表現とは異なるものが必要な場合、それはあなたを助けません。かたち。 – nemo
ありがとう、しかしtf.PrintとK.print_tensorの両方がそれ自身で何も印刷していないように見えます。標準出力のpython print(tf.Print(diff、[tf.shape(diff)]))実行時(訓練中)ではなく、モデルコンパイルフェーズ中に1回だけ実行されます。 – gcswoosh