TFX 1.0.0用Kubeflow编排流水线时报get_default_kubeflow_metadata_config属性缺失错误
TFX 1.0.0 Kubeflow编排属性不存在报错修复方案
AttributeError: module 'tfx.orchestration.experimental' has no attribute 'get_default_kubeflow_metadata_config'错误的核心原因是:TFX 1.0.0正式版已将Kubeflow编排相关能力从实验模块迁移到正式的tfx.orchestration.kubeflow模块,原experimental下的相关API已被移除。
修复步骤
- 调整导入语句,替换原experimental模块导入为Kubeflow正式模块
from tfx.orchestration.kubeflow import kubeflow_dag_runner
- 替换所有experimental前缀的API调用,对应调整为kubeflow_dag_runner下的方法:
- 原
experimental.get_default_kubeflow_metadata_config替换为kubeflow_dag_runner.get_default_kubeflow_metadata_config - 原
experimental.KubeflowDagRunnerConfig替换为kubeflow_dag_runner.KubeflowDagRunnerConfig - 原
experimental.KubeflowDagRunner替换为kubeflow_dag_runner.KubeflowDagRunner
- 原
- 补充原代码中缺失的
logging导入和变量定义,避免二次报错
修复后完整代码
import logging from tfx import v1 as tfx import my_config import my_pipeline1 from tfx.orchestration.kubeflow import kubeflow_dag_runner # 补充缺失的变量定义,可根据实际路径修改 PIPELINE_ROOT = my_config.PIPELINE_ROOT DATA_PATH = my_config.DATA_PATH def run(): """Define a kubeflow pipeline.""" metadata_config = kubeflow_dag_runner.get_default_kubeflow_metadata_config() runner_config = kubeflow_dag_runner.KubeflowDagRunnerConfig( kubeflow_metadata_config=metadata_config, tfx_image=my_config.PIPELINE_IMAGE) kubeflow_dag_runner.KubeflowDagRunner( config=runner_config ).run( my_pipeline1.create_pipeline( pipeline_name=my_config.PIPELINE_NAME, pipeline_root=PIPELINE_ROOT, data_root=DATA_PATH, preprocessing_fn = my_config.PREPROCESSING_FN, run_fn = my_config.RUN_FN, )) if __name__ == '__main__': logging.set_verbosity(logging.INFO) run()
内容的提问来源于stack exchange,提问作者AshwinSrinivas_1
相关产品推荐
相关产品推荐

