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

Tensorflow 如何在Keras中的一批数据上同时获得损耗和模型输出?,tensorflow,caffe,keras,Tensorflow,Caffe,Keras,我正在使用Keras w/Tensorflow后端来训练NN 我使用train\u on\u batch进行培训,它返回给定批次的损失。如何获得该批次的输出分类?(我想对输出进行一些可视化) 为此,我目前再次调用predict,以获得模型输出,但这是多余的,因为批上的列已经通过了输入批“forward” 在Caffe中,当图像被转发时,中间层输出保持存储在net.blobs中,但在Keras/Tensorflow中,如果我们想要获得中间输出,我们必须为我们想要在CPU上访问的每个中间输出重新运行

我正在使用Keras w/Tensorflow后端来训练NN

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

为此,我目前再次调用
predict
,以获得模型输出,但这是多余的,因为批上的列已经通过了输入批“forward”

在Caffe中,当图像被转发时,中间层输出保持存储在net.blobs中,但在Keras/Tensorflow中,如果我们想要获得中间输出,我们必须为我们想要在CPU上访问的每个中间输出重新运行计算图,如前所述。是否有一种方法可以访问多个/所有中间层的输出,而无需重新运行每个中间层的图形


我不介意使用特定于tensorflow的解决方法。

如果使用函数API,这很好

如果您使用函数API,这很好

除了@Mohamedez的答案之外,您还可以创建一个自定义回调,该回调可以执行培训过程中所需的操作。他们有一些方法可以运行你的代码onEpochEnd、onEpochStart、OnTrainingd等等。。。
通过这种方式,您可以保留批处理。

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

此操作返回中间输出,但不返回损失,也不更新权重。此操作返回中间输出,但不返回损失,也不更新权重。