Keras 中的自定义损失函数 - 遍历 TensorFlow



我正在努力在 Keras 中创建自定义损失函数。 下面是一个示例。

import keras.backend as K
def test(y_true, y_pred):
loss = K.square(y_pred - y_true)
loss = K.mean(loss, axis = 1)
return loss 

现在在这个例子中,我只想减去比方说特定的值 从y_pred,但由于这是在 TensorFlow 中,我如何迭代抛出它们。

例如,我能否循环访问y_pred来选取值?以及如何循环访问? 假设对于此示例,批大小为 5。

我尝试过诸如 y_pred[0...i] Tf.arange等等...

只需在编译模型时传递它即可。喜欢

model.compile(optimizer='sgd', loss = test)

Keras 将自动迭代它。 您在返回语句中也有意图错误。

import keras.backend as K
def test(y_true, y_pred):
loss = K.square(y_pred - y_true)
loss = K.mean(loss, axis = 1)
return loss 
def test_accuracy(y_true, y_pred):
return 1 - test(y_true, y_pred)

通过这种方式,您可以将自定义损失函数传递给模型,也可以类似地传递精度函数

model.compile(optimizer='sgd', loss = test, metrics=[test_accuracy])

最新更新