【发布时间】:2019-01-29 05:08:36
【问题描述】:
我想计算一个损失函数,它在不同的输入上两次使用网络的输出。例如,假设,
first_output = model(first_input)
second_output = model(second_input)
loss = mean_absolute_error(first_output, second_output)
如何在 tensorflow 或 keras 中实现这一点?
更新:谢谢大家的回复。我想在 keras 或 tensorflow 中重新实现this paper。正如其中所解释的,作为 GAN 中的鉴别器的“critic”网络有两个输入,并一个接一个地运行它们,并根据输出和计算梯度计算损失函数。主要问题是如何在 tensorflow 或 keras 中实现?
【问题讨论】:
-
你为什么需要那个?
-
How to concatenate two layers 可能会有所帮助。
-
这里是the paper author's GitHub repository implementing SegAN with PyTorch。我认为您很难让该网站上的某个人为您将其翻译成 Keras/TF,但我们绝对可以帮助您解决遇到的具体问题!
-
你有什么问题?您能否向我们展示一个没有给您想要的东西的具体示例,并描述您期望得到的东西?
-
抱歉我的问题太笼统了。对我来说有问题的部分是,在最初的实现中,作者训练了一次“critic”网络,输入图像被“segmentor”网络的输出屏蔽,然后在计算损失之前再次用地面屏蔽输入图像。所以基本上,他在获得损失之前通过相同的模型运行两个单独的输入。据我了解,在 pytorch 中,它是可能的,因为 pytorch 是动态的。但是如何用张量流做到这一点?我目前的猜测是在两个输入的两个模型之间共享批评者层并具有单一损失?
标签: python tensorflow keras deep-learning