查看Tensorflow关于MAE的文档,我发现 tf.metrics.mean_absolute_error 将返回以下内容:
mean_absolute_error
:一个表示当前平均值的张量,即总和除以计数的值。update_op
:一个操作,用于适当增加总和和计数变量,其值与mean_absolute_error匹配。
如何实现用于评估目的的MAE?正如这里所述:
mean_absolute_error 用于评估,因此它没有梯度。mean_absolute_error 还返回一个更新操作(您在上面的代码中忽略了它),必须使用该操作来更新平均值,因此这个函数的梯度概念并不适用。对于 tf.metrics.mean_absolute_error(pred, y),必须先调用更新操作才能获得平均值。
我不知道如何处理 mean_absolute_error
函数返回的值。能否有人提供一个使用此函数的简单示例?非常感谢。
回答:
听起来您不确定返回的张量/操作的含义以及如何使用它们。这里有一篇很好的文章解释了如何以及为何使用它们:http://ronny.rest/blog/post_2017_09_11_tf_metrics/
对于一个简单的自包含示例用法,您可以查看测试。例如:https://github.com/tensorflow/tensorflow/blob/cda36b817e9998906da37ec87c525f1b278c71a7/tensorflow/python/kernel_tests/metrics_test.py#L2816