【问题标题】:custom imports from tuning step script - sagemaker pipelines从调整步骤脚本自定义导入 - sagemaker 管道
【发布时间】:2023-02-06 23:53:52
【问题描述】:

我的 sagemaker 管道中有一个调整步骤,在接下来的步骤中,我在调整步骤容器中使用 train.py 脚本。在 train.py 脚本中,我正在使用名为“dill”的导入模块。似乎 sagemaker SKLearn 容器没有按预期安装要求。 运行管道后出现导入错误:ModuleNotFoundError:没有名为“dill”的模块

我的调整步骤容器:

 sk_estimator = SKLearn(
 entry_point="train.py",
 role=role,
 instance_count=1,
 instance_type="ml.c5.xlarge",
 source_dir="custom-model-sklearn/src/",
 hyperparameters={
     "target_col":'target_col',
     "penalty": 'none',
     "fit_intercept": True,
     "solver": 'lbfgs',
     "verbose": 0,
     "C": 1,
 },
 py_version="py3",
 framework_version="1.0-1",
 script_mode=True,
 sagemaker_session=pipeline_session,
 disable_profiler=True,
 output_path = "s3://{}/{}/TrainingStep".format(bucket,model_prefix)
)

base_job_name = f'sklearn-model'

包含 dill 的 train.py 脚本和 requirements.txt 文件位于目录内 - /自定义模型-sklearn/src。

火车.py:

    import ...
    import ...
    .
    .
    import dill
    .
    .

要求.txt:

   dill

由于错误在train.py 脚本中,似乎 source_dir 配置正确。

目前我正在将我的代码从一个帐户转移到另一个帐户。在之前的帐户中,我对相同的目录层次结构做了同样的事情,它确实设法将模块安装在调整容器中。

任何帮助,将不胜感激。

【问题讨论】:

  • 您需要即时安装dill,还是可以在运行脚本之前安装python -m pip install dill
  • 我确实需要即时安装 dill,当管道到达调整步骤并创建其容器时,它会运行 train.py 脚本。
  • 同样的问题,如果我得到答案,我会回来。

标签: amazon-sagemaker dill


【解决方案1】:

所以它似乎将第三方库与 Sagemaker estimator 一起使用。

可以参考this link了解更多流程。

但基本上使用您的代码,将您的 requirements.txt 文件添加到 custom-model-sklearn/src/ 下,估算器将在构建 docker 容器时安装您所需的要求。

【讨论】:

    猜你喜欢
    • 2021-04-05
    • 2022-11-19
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 2020-03-14
    • 1970-01-01
    相关资源
    最近更新 更多