2017-04-19 14 views

答えて

0

実際に回避策は、モデルをコンパイルするときに、メトリックとして監視する量を追加することです。

は例えば、私は(変オートエンコーダの文脈における)KLダイバージェンスを監視したかったので、私はこれを書いた:

def kl_loss(y_true, y_pred): 
    kl_loss = - 0.5 * K.sum(1 + K.log(z_var_0+1e-8) - K.square(z_mean_0) - z_var_0, axis=-1) 
    return kl_loss 

vae.compile(optimizer='rmsprop', loss=vae_loss, metrics=['accuracy', kl_loss]) 

をそして、それは私が

1

TensorBoardコールバックを試しましたか? [1]

tensorboard = keras.callbacks.TensorBoard(log_dir='./logs', 
       histogram_freq=1, 
       write_graph=True, 
       write_images=False) 
vae.fit(x_train, 
     shuffle=True, 
     epochs=epochs, 
     batch_size=batch_size, 
     validation_data=(x_test, x_test), 
     callbacks=[tensorboard]) 

を次に実行します。

tensorboard --logdir=./logs 

をはあなたが興味のある特定の項目を処理するためのコールバックの修正バージョンを書くことができ

[1] https://keras.io/callbacks/#tensorboard

+0

必要なものTensorboardは非常にいいですんが、それは十分な柔軟性がありません。例えば、私の損失にもaとbの部分があり、a + bが全体の損失であるが(モデルの同じ出力で計算される)、私はaとbを別々に監視することはできないが、a + bの合計だけを監視することができる。私は両方を監視できるようにしたいと思いますが、tf.summaryでこれを行うことができますが、Kerasでどうすればよいか分かりません。 – sbaur

+0

Tensorboardコールバックは 'tf.summary.histogram'と' tf.summary.FileWriter 'テンソルボードのログをダンプする。 https://github.com/fchollet/keras/blob/master/keras/callbacks.py#L631だから、tf.summaryにしたいオプションを送る独自のラムダコールバックを定義するのは簡単でしょう。 – MattMcKnight

+1

私は考えていませんでしたコールバックを調べることについて.TensorBoardのソースコード、便利なコードがたくさんあります。本当にありがとう、本当に助けてください! – sbaur

関連する問題