是否可以用符号将内置 keras 损失函数乘以常数?例如,如果我想要两个输出损耗的线性组合。
我可以编写一个自定义损失函数,但它不会被编译,因为它是 python 代码,而不是符号 Keras 吗?我正在寻找一种在纯 Keras (或 TF)中做到这一点的方法
如果您的模型产生多个输出,您可以通过向模型方法的参数提供Keras 损失列表来为每个输出分配一个损失函数。例如,如果您的模型的形式为losscompile
model = Model(inputs=[input_a, input_b], outputs=[output_a, output_b])
Run Code Online (Sandbox Code Playgroud)
你可以像这样编译它:
model.compile(
optimizer='rmsprop',
loss=['binary_crossentropy', 'mean_squared_error'],
loss_weights=[1., 0.2]
)
Run Code Online (Sandbox Code Playgroud)
这会将二元交叉熵损失分配给输出output_a,并将均方误差损失分配给output_b。最终最小化的损失将是这些损失的加权和,权重在 中指定loss_weights。
或者,如果输出层已命名,您还可以使用以输出层名称作为键的字典来指定loss和。loss_weights这可能有助于消除将哪些损失和权重分配给哪些输出的歧义。
有关更多信息,请参阅https://keras.io/getting-started/function-api-guide/#multi-input-and-multi-output-models 。
| 归档时间: |
|
| 查看次数: |
1979 次 |
| 最近记录: |