首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >keras多输出模型下的TFX求值器问题

keras多输出模型下的TFX求值器问题
EN

Stack Overflow用户
提问于 2020-11-06 05:50:57
回答 1查看 203关注 0票数 0

我在TFX中使用了一个非常简单的keras模型来解决一个回归问题。看起来TFX希望你使用一个带命名输出的keras模型,所以我做了:

代码语言:javascript
复制
output = {key: tf.keras.layers.Dense(1, name = key)(x) 
          for key in _transformed_names(_LABEL_KEYS)} 

model(inputs, outputs) 

我不明白赋值器如何将我的数据集的标签名称映射到我的模型的输出名称。

在我的代码中,我用表单列表在tfma.ModelSpec中设置了label_keys and prediction_keys参数:

代码语言:javascript
复制
[["model output name", "Label key in my Dataset"]]

似乎proto消息是正确创建的,但是当我运行赋值器时,我得到了以下错误:

代码语言:javascript
复制
ValueError: unable to prepare labels and predictions because the labels and/or predictions are dicts with unrecognized keys. If a multi-output keras model (or estimator) was used check that an output_name was provided. If an estimator was used check that common prediction keys were provided (e.g. logistic, probabilities, etc)

如果我尝试使用label_keyprediction_key参数提供单个标签键和单个预测键,则会得到以下错误:

代码语言:javascript
复制
TypeError: update_state() takes from 2 to 3 positional arguments but 4 were given [while running 'ExtractEvaluateAndWriteResults/ExtractAndEvaluate/EvaluateMetricsAndPlots/ComputeMetricsAndPlots()/ComputePerSlice/ComputeUnsampledMetrics/CombinePerSliceKey/WindowIntoDiscarding']

我已经尝试了所有可能的方法,但一无所获。有没有办法使用没有命名输出的模型(具有多个节点的密集输出层)?或者是解决这个问题的方法?

附注:有多输出keras模型的TFX管道的教程吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-01-11 06:11:18

在eval_config中,设置

options=Options(include_default_metrics=BoolValue(value=False))

例如:

代码语言:javascript
复制
  eval_config = tfma.EvalConfig(
      model_specs = [...],
      slicing_specs=[tfma.SlicingSpec(),...],
      metrics_specs=[...],
      options=Options(include_default_metrics=BoolValue(value=False))
      )
  evaluator = Evaluator(
      ...
      eval_config=eval_config
  )
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64705826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档