我正在努力在 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])