Keras中的自定义损失功能仅运行一次

时间:2018-10-27 08:44:04

标签: python keras loss-function

我已经在Keras中定义了一个自定义损失函数,如下所示:

def loss_function_test(yTrue, yPred):
    global i
    i += 1
    print("\n")
    print("Loss Function:", i, " ----- ", yTrue, yPred)
    print("\n")
    res = k.sum(yTrue - yPred)
    return res

并将其设置如下:

model.compile(loss=loss_function_test,
              optimizer='sgd',
              metrics=['accuracy'])

问题是检查损失函数代码中的global iprint函数,我意识到在训练中,当我调用model.fit时,该函数仅被调用一次。即使我调试它,它也只会被调用一次。似乎损失函数仅在compile时才被调用。谁能解释为什么?

1 个答案:

答案 0 :(得分:1)

构造损失函数op的功能仅运行一次。

如果要查看通过tensorflow评估运算的频率,则需要在tensorflow图中添加一个tf.Print操作。