我正在训练一个简单的VAE模型,处理64*64的图像,我想在每个周期或每几批次后查看生成的图像以观察进展。
当我训练模型时,我会等到训练完成后再查看结果。
我尝试在Keras中创建一个自定义回调函数来生成并保存图像,但没有成功。这是可能的吗?我找不到任何类似的方法。
如果您能推荐一个解释如何操作的资源,或展示一个例子,那将非常棒。
注意:我对一个干净的Keras.callback解决方案感兴趣,而不是遍历每个周期,训练并生成样本
回答:
如果你仍然需要它,你可以定义一个Keras中的自定义回调,作为keras.callbacks.Callback
的子类:
class CustomCallback(keras.callbacks.Callback): def __init__(self, save_path, VAE): self.save_path = save_path self.VAE = VAE def on_epoch_end(self, epoch, logs={}): #加载图像 #使用self.VAE.encoder.predict(image)获取潜在空间 #使用self.VAE.decoder.predict(latent_space)获取重建图像 #使用matplotlib.pyplot绘制重建图像
然后定义回调为image_callback = CustomCallback(...)
,并将image_callback放入回调列表中