如何在Keras的一批数据上同时获得损失和模型输出?

时间:2016-11-17 08:39:33

标签: tensorflow caffe keras

我使用Keras w / Tensorflow后端训练NN。

我使用train_on_batch进行培训,这会返回给定批次的损失。我如何获得该批次的输出分类? (我想对输出进行一些可视化)

要做到这一点,我现在再次拨打predict来获取模型输出,但这是多余的,因为train_on_batch已经通过了输入批处理" forward"。

在Caffe中,当图像被向前馈送时,中间层输出保持存储在net.blobs中,但在Keras / Tensorflow中,似乎如果我们想要获得中间输出,我们必须重新运行每个中间体的计算图我们想要在CPU上访问的输出,如here所述。有没有办法访问许多/所有中间层'输出而不重新运行每个图表?

我不介意使用特定于张量流的解决方法。

2 个答案:

答案 0 :(得分:0)

如果您使用函数API,那就非常straight forward

答案 1 :(得分:0)

除了@ MohamedEzz的答案,您还可以创建一个自定义回调,可以执行培训过程中所需的操作。他们有一些方法可以运行你的代码onEpochEnd,onEpochStart,onTrainingEnd等等...... 这样您就可以保留批次。