0

为什么此代码对于损失函数可以正常工作,但在一次迭代后指标失败,出现“ValueError:操作数无法与形状 (32,) (24,) (32,)”一起广播?

如果我在引号中使用“categorical_crossentropy”,那么它可以工作。我的自定义指标看起来与 keras.losses 中的指标相同。

import keras.backend as K
def categorical_crossentropy(y_true, y_pred):
    return K.categorical_crossentropy(y_pred, y_true)

fc.compile(optimizer=Adam(.01), loss=categorical_crossentropy, metrics=[categorical_crossentropy])
fc.fit(xtrain, ytrain, validation_data=(xvalid, yvalid), verbose=0,
       callbacks=[TQDMNotebookCallback(leave_inner=True, leave_outer=True)],
       nb_epoch=2)
4

1 回答 1

0

如果我从 keras.metrics 导入 categorical_crossentropy,它会起作用;而不是导入K。仍然不知道为什么上述方法不起作用,但至少这是一个解决方案。

此外,在度量参数中似乎不需要损失函数,因为它是自动计算并显示用于训练和验证的。

于 2017-05-04T12:14:48.027 回答