【发布时间】: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