为了账号安全,请及时绑定邮箱和手机立即绑定

Evaluator 组件上的 TFX IndexError

Evaluator 组件上的 TFX IndexError

慕尼黑8549860 2023-05-23 15:27:20
我正在尝试为我的模型制作一个评估器。到目前为止,所有其他组件都很好,但是当我尝试此配置时:eval_config = tfma.EvalConfig(    model_specs=[        tfma.ModelSpec(label_key='Category'),    ],    metrics_specs=tfma.metrics.default_multi_class_classification_specs(),    slicing_specs=[        tfma.SlicingSpec(),        tfma.SlicingSpec(feature_keys=['Category'])    ])使这个评估者:model_resolver = ResolverNode(      instance_name='latest_blessed_model_resolver',      resolver_class=latest_blessed_model_resolver.LatestBlessedModelResolver,      model=Channel(type=Model),      model_blessing=Channel(type=ModelBlessing))context.run(model_resolver)evaluator = Evaluator(    examples=example_gen.outputs['examples'],    model=trainer.outputs['model'],    baseline_model=model_resolver.outputs['model'],    eval_config=eval_config)context.run(evaluator)
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

我让它工作了。我的问题是,在数据集中,标签(文档类别)是字符串格式(例如:“sport”、“business”……)。因此,为了将其编码为整数,我使用了 Transform 组件对其进行预处理。


但是,在构建评估器组件时,我传递了 ExampleGen 组件,其中没有对数据进行任何处理。所以评估者试图从 ExampleGen 转换字符串以匹配模型的整数输出。


所以,为了解决这个问题,我只是这样做了:


model_resolver = ResolverNode(

      instance_name='latest_blessed_model_resolver',

      resolver_class=latest_blessed_model_resolver.LatestBlessedModelResolver,

      model=Channel(type=Model),

      model_blessing=Channel(type=ModelBlessing))

context.run(model_resolver)


evaluator = Evaluator(

    examples=transform.outputs['transformed_examples'],

    model=trainer.outputs['model'],

    baseline_model=model_resolver.outputs['model'],

    eval_config=eval_config)

context.run(evaluator)

我使用了转换组件中的示例。当然,我还更改了配置中的标签键,以匹配转换组件的标签名称。


我不知道是否有一种“更清洁”的方法来执行此操作(或者如果我做错了,请纠正我!)


查看完整回答
反对 回复 2023-05-23
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信