Keras - 在培训期间使用TensorBoard监控数量

时间:2017-04-19 16:16:04

标签: monitoring keras tensorboard autoencoder

使用Tensorflow,可以使用tf.summary在培训期间监控数量。

使用Keras可以做同样的事吗?您是否可以通过修改https://github.com/fchollet/keras/blob/master/examples/variational_autoencoder.py处的代码并监控KL损失(已定义at line 53)来包含示例

提前谢谢!

2 个答案:

答案 0 :(得分:4)

您是否尝试过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

答案 1 :(得分:1)

实际上,解决方法包括在编译模型时添加要监控的数量作为指标。

例如,我想监视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])

它做了我需要的事情