如果我有多个Tensorboard文件,它们如何组合成一个Tensorboard文件?
在keras中说,对于单个模型,多次调用以下model.fit()
,例如在典型的GAN实现中:
for i in range(num_epochs):
model.fit(epochs=1, callbacks=Tensorboard())
每次都会产生一个新的Tensorboard文件,这是没用的。不确定是否有方法可以附加Tensorboard,或者不会为每个回调调用生成唯一的带时间戳的文件。
答案 0 :(得分:1)
在tensorboard 2.3中似乎可以访问tensorboard文件的记录数据并将其加载到pandas数据框中。本教程概述了该方法:
https://www.tensorflow.org/tensorboard/dataframe_api
在撰写本文时,我找不到tensorboard 2.3版,但本教程所依赖的模块-tensorboard.data.experimental.ExperimentFromDev()-似乎存在于tensorboard 2.2中:https://github.com/tensorflow/tensorboard/blob/master/tensorboard/data/experimental/experiment_from_dev.py#L71
您可以将现有的数据从多个张量板文件加载到数据框中,然后以所需的方式组合这些数据框,以将组合的数据框写入新的张量板文件中。我曾考虑过这种方法来解决针对不同训练运行具有多个tensorboard文件的问题,但尚未在我的项目中尝试过。
答案 1 :(得分:0)
如果有人偶然发现了这个问题,则可以使用model.fit()
中定义的 initial_epoch在for循环中,每次调用model.fit()时都可以更改initial_epoch。
答案 2 :(得分:0)
initial_epoch
文档的新链接:https://keras.io/api/models/model_training_apis/
另请注意,epochs 也需要更改。
for i in range(num_epochs):
model.fit(epochs=i, initial_epoch=i-1, callbacks=Tensorboard())
因为
<块引用>注意,结合initial_epoch,epochs 被理解为“final epoch”。模型不是针对 epoch 给出的迭代次数进行训练,而是直到达到索引 epoch 的 epoch。