Tensorflowでは、トレーニング中の量をtf.summaryを使用して監視することができます。トレーニング中のTensorBoardによるケラス監視量
Kerasを使用して同じことを実行できますか?コードをhttps://github.com/fchollet/keras/blob/master/examples/variational_autoencoder.pyに変更し、KLの損失を監視して例を含めることができますか(at line 53と定義)
ありがとうございます!
Tensorflowでは、トレーニング中の量をtf.summaryを使用して監視することができます。トレーニング中のTensorBoardによるケラス監視量
Kerasを使用して同じことを実行できますか?コードをhttps://github.com/fchollet/keras/blob/master/examples/variational_autoencoder.pyに変更し、KLの損失を監視して例を含めることができますか(at line 53と定義)
ありがとうございます!
実際に回避策は、モデルをコンパイルするときに、メトリックとして監視する量を追加することです。
は例えば、私は(変オートエンコーダの文脈における)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])
をそして、それは私が
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
をはあなたが興味のある特定の項目を処理するためのコールバックの修正バージョンを書くことができ
必要なものTensorboardは非常にいいですんが、それは十分な柔軟性がありません。例えば、私の損失にもaとbの部分があり、a + bが全体の損失であるが(モデルの同じ出力で計算される)、私はaとbを別々に監視することはできないが、a + bの合計だけを監視することができる。私は両方を監視できるようにしたいと思いますが、tf.summaryでこれを行うことができますが、Kerasでどうすればよいか分かりません。 – sbaur
Tensorboardコールバックは 'tf.summary.histogram'と' tf.summary.FileWriter 'テンソルボードのログをダンプする。 https://github.com/fchollet/keras/blob/master/keras/callbacks.py#L631だから、tf.summaryにしたいオプションを送る独自のラムダコールバックを定義するのは簡単でしょう。 – MattMcKnight
私は考えていませんでしたコールバックを調べることについて.TensorBoardのソースコード、便利なコードがたくさんあります。本当にありがとう、本当に助けてください! – sbaur