我正在使用Keras w/Tensorflow后端来训练一个NN。
我使用train_on_batch
进行训练,它返回给定批上的损失。如何获得该批处理的输出分类?(我想做一些输出的可视化)
要做到这一点,我目前做另一个调用predict
来获得模型输出,但这是多余的,因为train_on_batch已经传递了输入批"forward"。
在Caffe中,当图像被前馈时,中间层输出保留存储在net中。但是在Keras/Tensorflow中,如果我们想要获得一个中间输出,我们必须为我们想要在CPU上访问的每个中间输出重新运行计算图,如下所述。是否有一种方法可以访问许多/所有中间层的输出,而不需要为每个中间层重新运行图?
我不介意有一个特定于tensorflow的解决方案
如果您使用函数API,这是相当直接的。
除了@MohamedEzz的答案之外,您还可以创建一个自定义回调,该回调可以执行您在培训过程中所需的操作。它们有一些方法可以运行你的代码onEpochEnd, onEpochStart, onTrainingEnd等等…这样可以保存批处理。