gpt4 book ai didi

python - Keras 自定义损失函数,具有来自拟合生成器的多个参数

转载 作者:行者123 更新时间:2023-12-01 06:44:07 25 4
gpt4 key购买 nike

我想创建一个自定义损失,它从数据生成器获取网络的输出和多个参数。

我找到了this文章,介绍了如何使用一个标签计算多个层的一个损失。但我想使用 fit_generator 计算具有多个标签的单层的损失。我的问题是 Keras 期望输出和标签具有相同的形状。

示例:

常规定制损失:

def custom_loss(y_pred, y_label):
return K.mean(y_pred - y_label)

我想要使用的自定义损失类型的示例:

def custom_loss(y_pred, y_label, y_weights):
loss = K.mean(y_pred - y_label)
return tf.compat.v1.losses.compute_weighted_loss(loss, y_weights)

这只是一个例子,我的原始代码有点复杂。我只是希望能够为损失函数提供两个参数(y_label 和 y_weights),而不是只有一个参数(y_label)。

有人知道如何解决这个问题吗?

最佳答案

我不确定你到底在问什么,但也许你可以使用这个。您可以尝试类似返回损失函数的自定义函数之类的方法。

def custom_loss(y_weights):

# Create a loss function that calculates what you want
def example_loss(y_true,y_pred):
loss = K.mean(y_pred - y_label)
return tf.compat.v1.losses.compute_weighted_loss(loss, y_weights)

# Return a function
return example_loss

# Compile the model
model.compile(optimizer='adam',
loss=custom_loss(y_weights), # Call the loss function with the preferred weights
metrics=['accuracy'])

您还可以查看this问题

关于python - Keras 自定义损失函数,具有来自拟合生成器的多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59324185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com