1

将 .py 文件下载到执行环境中有哪些选项?

在这个例子中:

class Preprocess(dsl.ContainerOp):

  def __init__(self, name, bucket, cutoff_year):
    super(Preprocess, self).__init__(
      name=name,
      # image needs to be a compile-time string
      image='gcr.io/<project>/<image-name>/cpu:v1',
      command=['python3', 'run_preprocess.py'],
      arguments=[
        '--bucket', bucket,
        '--cutoff_year', cutoff_year,
        '--kfp'
      ],
      file_outputs={'blob-path': '/blob_path.txt'}
    )

正在从 CLI 调用 run_preprocess.py 文件。

问题是:如何在那里获取该文件?

我看过这个有趣的例子:https ://github.com/benjamintanweihao/kubeflow-mnist/blob/master/pipeline.py ,它会在运行管道之前克隆代码。

另一种方法是使用 Dockerfile 进行 git 克隆(尽管构建映像需要很长时间)。

还有什么其他选择?

4

1 回答 1

1

要使用 python 启动 KFP 开发,请尝试以下教程:Python 组件中的数据传递

它在运行管道之前克隆代码另一种方法是使用 Dockerfile 进行 git 克隆(尽管构建图像需要很长时间)

理想情况下,文件应该在容器镜像中(Dockerfile 方法)。这确保了最大的可重复性。

对于不太复杂的 python 脚本,轻量级 python 组件功能允许您从 python 函数创建组件。在这种情况下,脚本代码存储在组件命令行中,因此您无需在任何地方上传代码。

将脚本放在远程(例如云存储或网站)是可能的,但会降低可靠性和可重复性。

附言

虽然图像需要很长时间才能建立

它不应该。第一次可能会因为必须拉取基础映像而变慢,但之后应该会很快,因为只有新层被推入。(这需要选择一个安装了所有依赖项的良好基础镜像,因此您的 Dockerfile 只添加您的脚本)。

于 2021-01-04T00:38:54.640 回答