【发布时间】:2018-11-24 10:19:59
【问题描述】:
我想在 Keras (python) 中编写一个自定义指标,以在我训练时评估我的序列到序列模型的性能。序列是一次性编码的,标记是单词而不是字符。我希望它只报告完全正确的序列数(百分比也可以)。因此,如果它预测“猫坐在垫子上”而不是“猫坐在垫子上”,那将是不正确的并且不会被计算在内。
Keras(在我看来)关于编写自定义指标的文档有限(此处为 https://keras.io/metrics/)。基本上,我想要的是类似的东西
import keras.backend as K
def num_correct(y_true, y_pred):
return K.sum(float(y_pred == y_true))
现在,Keras 不喜欢这样。它说 float 没有属性形状。我知道 y_true 和 y_pred 是张量,但我不完全确定它想要返回什么。帮助表示赞赏。
【问题讨论】:
-
这和categorical_accuracy有什么不同?
-
categorical_accuracy 逐个令牌而不是逐个序列地比较条目。因此,上面的示例不会获得 0 的准确度,而这正是我们所期望的。
标签: python keras deep-learning metrics sequence-to-sequence