我想写一个我遵循this link的自定义指标评估程序。我的伪代码是
import tensorflow as tf
from tensorflow import keras
class DummyMetric(keras.metrics.Metric):
def __init__(self, name='categorical_true_positives', **kwargs):
super(DummyMetric, self).__init__(name=name, **kwargs)
self.true_positives = self.add_weight(name='tp', initializer='zeros')
def update_state(self, y_true, y_pred, sample_weight=None):
print("Evaluating tensor of shape {} against gt of shape {}".format(y_pred.shape, y_true.shape))
self.true_positives.assign_add(1.0)
def result(self):
return self.true_positives
def reset_states(self):
# The state of the metric will be reset at the start of each epoch.
self.true_positives.assign(0.)
我的tensorflow版本是从源代码安装的1.13.1 。
keras.metrics.Metric
抛出
AttributeError:模块'tensorflow._api.v1.keras.metrics'没有属性'Metric'。
当我执行pip install tensorflow-gpu==1.14
时,此错误就会消失。
请尽可能提出建议的解决方案/黑客,而无需升级到1.14
答案 0 :(得分:2)
似乎这可能不在__init__.py
的范围内,我猜他们在1.14中解决了这个问题。我能够以这种方式导入它:
from tensorflow.python.keras.metrics import Metric
它在文件中定义:
tensorflow/python/keras/metrics.py