我已经开始使用 Kubeflow Pipelines 为机器学习项目运行数据处理、训练和预测,并且我正在使用 InputPath 和 OutputhPath 在组件之间传递大文件。
如果可能的话,我想知道如何设置 OutputPath 在组件中查找文件的路径,以及 InputPath 在组件中加载文件的位置。
目前,代码将它们存储在预定的位置(例如data/my_data.csv
),如果我可以“告诉” InputPath/OutputPath 这是它应该复制的文件,而不是必须重命名所有文件以匹配什么 OutputPath期望,按照下面的最小示例。
@dsl.pipelines(name='test_pipeline')
def pipeline():
pp = create_component_from_func(func=_pre_process_data)()
# use pp['pre_processed']...
def pre_process_data(pre_processed_path: OutputPath('csv')):
import os
print('do some processing which saves file to data/pre_processed.csv')
# want to avoid this:
print('move files to OutputPath locations...')
os.rename(f'data/pre_processed.csv', pre_processed_path)
自然,我不希望更新代码以遵守 Kubeflow 管道命名约定,因为这对我来说似乎是非常糟糕的做法。
谢谢!