- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我之前为 TensorFlow 分类器创建了指标,引用预测['logits']
来计算指标。我已将模型从分类器更改为估计器,以实现多目标学习(使用 MultiHead)。然而,这导致 Python 抛出错误,因为现在预测的元素由头名称和原始键对进行键控,例如('label1','logits') 表示名称为“label1”的头。
我希望允许基于配置文件动态生成指标,以便更轻松地训练和测试具有不同标签组合的各种模型。现在的问题是,tf.estimator.add_metrics
的 metric_fn
参数不采用任何其他参数来允许动态确定或构建指标。
如何生成具有多个头和每个头的自定义指标的估算器?
最佳答案
围绕模型创建构建一个类来保存模型配置,并使用 metric_fn
参数的成员函数。
类模型构建器:
# 构造函数在 self 中存储配置选项
def __init__(自身、标签、other_config_args):
self.labels = 标签
...
# 用于构建多头估计器(多目标)的函数
def build_estimator(self, func_args):
头=[]
对于 self.labels 中的标签:
Heads.append(tf.estimator.MultiClassHead(n_classes=self.nclasses[label], name=label))
头 = tf.estimator.MultiHead(头)
estimator = tf.estimator.DNNEstimator(head=heads,...) # 或您想要的任何类型的估计器
估计器 = tf.estimator.add_metrics(估计器, self.model_metrics)
返回估计器
# 根据模型配置参数将指标添加到估计器的成员函数
def model_metrics(自身、标签、预测、特征):
指标 = {}
for label in self.labels: # 为每个头名称生成一个指标
指标['metric_name'] = metric_func(特征,标签,预测[(标签,'logits')])
返回指标
关于python - 应如何将指标添加到多头 TensorFlow 估计器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59888227/
我是一名优秀的程序员,十分优秀!