当前位置: 首页 > 知识库问答 >
问题:

如何在损失前运行keras模型两次?

夏侯兴怀
2023-03-14

我想计算一个损失函数,它在不同的输入上使用网络的输出两次。例如,假设,

first_output = model(first_input)
second_output = model(second_input)
loss = mean_absolute_error(first_output, second_output)

更新:谢谢你们的回复。我想在keras或张量流中重新实现这篇论文。正如其中所解释的,“批评家”网络在GAN中是鉴别器,它有两个输入,一个接一个地运行,并根据输出和计算梯度计算损失函数。主要问题是如何在张量流或Keras中实现?

共有1个答案

吴胜
2023-03-14

您可以尝试使用keras。图层。合并。我以前用这个来创建暹罗网络,比如:

first_output = model(first_input)
second_output = model(second_input)
mae = lambda x: mean_absolute_error(x[0], x[1])
distance = merge(inputs=[first_output, second_output],
                 mode=mae,
                 output_shape=lambda x: x[0],
                 name='mean_absolute_error')

对于暹罗网络示例,您通常会对此距离度量进行一些预测,例如:

prediction = Dense(2, activation='softmax', name='prediction')(distance)
model = Model([first_input, second_input], prediction, name='siamese_net')
model.compile(optimizer=Adam(),
              loss=some_loss_function)

使用keras。型号。型号和keras。图层。对于该示例,密集。

请注意,keras。图层。merge(我相信)在Keras的最新版本中被弃用,这真是太遗憾了。我认为要对最现代的Keras进行类似的操作,您需要使用Keras。图层。串联以合并两个结果,然后是keras。图层。Lambda应用该功能。

 类似资料:
  • 问题内容: 在Keras中,如果您需要自定义损失以及其他参数,我们可以像https://datascience.stackexchange.com/questions/25029/custom- loss-function-with-additional-parameter-in- 凯拉斯 当我训练模型时,上述方法有效。但是,一旦训练了模型,我将很难加载模型。当我尝试在load_model中使用c

  • 我试图在keras中建立一个简单的单输出回归模型,在这里我可以对我的预测值有一些信心。为此,我希望在两个输出上有一个自定义损耗函数,如下所示: 然而,我只能有两个输入y_true和y_pred,那么有没有一种方法可以拥有这种形式的自定义损失函数? 或者,有没有更好的方法来估计我回归的信心?

  • 问题内容: 我找不到Keras如何定义“准确性”和“损失”。我知道我可以指定不同的指标(例如mse,交叉熵),但是keras会打印出标准的“准确性”。如何定义?同样对于损失:我知道我可以指定不同类型的正则化- 损失中的那些正则化吗? 理想情况下,我想打印出用于定义它的公式;如果没有,我会在这里解决。 问题答案: 看一下,您可以在其中找到所有可用指标的定义,包括不同类型的准确性。除非在编译模型时将其

  • 问题内容: 我正在运行Keras模型,提交截止日期为36小时,如果我在cpu上训练我的模型大约需要50个小时,是否可以在gpu上运行Keras? 我正在使用Tensorflow后端,并在未安装anaconda的Jupyter笔记本上运行它。 问题答案: 是的,您可以在GPU上运行keras模型。几件事您将必须首先检查。 您的系统具有GPU(Nvidia。因为AMD尚未运行) 您已经安装了Tenso

  • 我正在运行一个Keras模型,提交截止日期为36小时,如果我在cpu上训练我的模型,大约需要50小时,有没有办法在gpu上运行Keras? 我正在使用Tensorflow后端并在我的Jupyter笔记本上运行它,而没有安装anaconda。

  • 问题内容: 在Keras(具有Tensorflow后端)中,当前输入模式可用于我的自定义损失函数吗? 当前输入模式定义为用于产生预测的输入向量。例如,考虑以下内容:。然后,当前输入模式是与y_train(在损失函数中称为y_true)关联的当前X_train向量。 在设计自定义损失函数时,我打算优化/最小化一个需要访问当前输入模式而不只是当前预测的值。 我已经看过https://github.co