You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Kubeflow中使用CustomContainerTrainingJobRunOp如何给自定义容器传参

问题解决方案

你遇到的参数传递错误本质是参数类型不匹配导致的:CustomContainerTrainingJobRunOp的args参数要求列表内所有元素均为字符串类型,你当前代码中传入的数值28为整数类型,Kubeflow流水线序列化参数时不会自动做类型转换,导致容器接收到的参数格式异常,最终运行失败。

修复方法
  • 把数值参数显式转为字符串即可,修改后的代码片段如下:
import kfp
from kfp.v2 import compiler
from kfp.v2.dsl import component
from kfp.v2.google import experimental
from kfp.v2.google.client import AIPlatformClient
from google_cloud_pipeline_components import aiplatform as gcc_aip

@kfp.dsl.pipeline(name=pipeline_name, pipeline_root='gs://a-gcs-bucket')
def pipeline():
    
    subclass_training_job_run_op = gcc_aip.CustomContainerTrainingJobRunOp(
        project=project_id, 
        display_name=model_display_name,
        container_uri=subclass_container_uri,
        args=["--my_argument", "28"], # 仅需把整数28改为字符串格式"28"
        staging_bucket=staging_bucket,
        base_output_dir=base_output_uri,
        #dataset=dataset_create_op.outputs["dataset"]
    )
  • 如果后续要使用流水线动态参数(比如上游组件输出、流水线入参)作为参数值,也需要确保参数被转换为字符串类型,数值类参数可以用str()方法包裹转换。
验证说明

修改后参数传递逻辑和你本地测试的docker run $IMAGE_URI --my_argument 28逻辑完全一致,所有参数都会以字符串形式传递给容器入口程序,不会出现格式异常问题。

内容的提问来源于stack exchange,提问作者v_loves_avocados

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:57:03