改变keras指标=准确性

时间:2018-03-19 07:56:04

标签: python-3.x machine-learning keras

我正在训练一个人类年龄的数据集,当我运行模型的编译指标='准​​确度时,我不希望它计算精确的准确度,但只是看看对于特定年龄范围,如果正确识别年龄范围,则计算准确度。我想知道我怎么能做到这一点。我可以简单地编辑编译功能吗? 谢谢

编辑:所以我开始的是https://github.com/yu4u/age-gender-estimation

我想要做的是提取年龄,检查它是否在某个范围内,比如说20 - 30,然后根据程序是否正确来确定准确度,看它是20 - 30而不是如果程序能够识别确切的年龄,则检查准确性。我认为最简单的方法是在train.py文件的第71-72行中看到的model.compile函数中添加一个新的度量标准

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

我遇到的一个问题是我不确定如何检查此文件的实际年龄,以将其插入自定义指标或甚至创建回调

从这里开始,我假设我必须编辑plot_history.py文件来实际绘制精确度。

如果有人有任何想法,那将是一个巨大的帮助

再次感谢您

1 个答案:

答案 0 :(得分:0)

您可以自己编写metric。但是你必须使用keras后端函数,因为如果你使用tensorflow,那么这将放在你的图中,因此你的指标必须处理张量而不是numpy数组。

您的第二个选择是撰写custom callback,它会在纪元结束时自动打印您的指标。在这里,您使用模型预测验证数据集,然后使用numpy数组作为输入简单地计算指标。