簡體   English   中英

如何在 Sagemaker 管道處理步驟中添加其他文件

[英]How to add additional files in Sagemaker Pipeline Processing Step

我想要可以在 preprocess.py 文件中導入的其他文件
但我無法直接導入這些。

我的目錄如下所示: 截屏

想要從helper_functions目錄導入到預處理中。

我試圖將其添加到 setup.py 文件中,但沒有成功。

package_data={"pipelines.ha_forecast.helper_functions": ["*.py"]},

一種有效的方法是在輸入中添加這個文件夾,如下所示:

inputs = [
ProcessingInput(source=f'{project_name}/{module_name}/helper_functions',
destination="/opt/ml/processing/input/code/helper_functions"),
]

但這是將所需的文件放在我無法再導入的其他目錄中。

這樣做的標准方法是什么?

您必須指定source_dir 在您的腳本中,您可以像往常一樣導入模塊。

source_dir (str or PipelineVariable) – 一個目錄的路徑(絕對、相對或 S3 URI),除了入口點文件(默認值:無)之外,還有任何其他訓練源代碼依賴項。 如果 source_dir 是一個 S3 URI,它必須指向一個 tar.gz 文件。 在 Amazon SageMaker 上訓練時會保留此目錄中的結構。

查看Processing 的一般文檔(您必須使用FrameworkProcessor ,而不是像 SKLearnProcessor 這樣的特定文檔)。

PS:答案類似於“ How to install additional packages in sagemaker pipeline ”這個問題。

在指定的文件夾中,必須有腳本(在您的例子中為 preprocess.py)、可能需要的任何其他文件/模塊,最后還有 requirements.txt 文件。

該文件夾的結構將是:

BASE_DIR/
|─ helper_functions/
|  |─ your_utils.py
|─ requirements.txt
|─ preprocess.py

在您的 preprocess.py 中,您將以簡單的方式調用腳本:

from helper_functions.your_utils import your_class, your_func

所以,你的代碼變成:

from sagemaker.processing import FrameworkProcessor
from sagemaker.sklearn import SKLearn
from sagemaker.workflow.steps import ProcessingStep
from sagemaker.processing import ProcessingInput, ProcessingOutput

BASE_DIR = your_script_dir_path

sklearn_processor = FrameworkProcessor(
    estimator_cls=SKLearn,
    framework_version=framework_version,
    instance_type=processing_instance_type,
    instance_count=processing_instance_count,
    base_job_name=base_job_name,
    sagemaker_session=pipeline_session,
    role=role
)

step_args = sklearn_processor.run(
    inputs=[your_inputs],
    outputs=[your_outputs],
    code="preprocess.py",
    source_dir=BASE_DIR,
    arguments=[your_arguments],
)

step_process = ProcessingStep(
    name="ProcessingName",
    step_args=step_args
)

最好將各個步驟的文件夾分開存放,不要重疊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM