我已经在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 i
和print
函数,我意识到在训练中,当我调用model.fit
时,该函数仅被调用一次。即使我调试它,它也只会被调用一次。似乎损失函数仅在compile
时才被调用。谁能解释为什么?