我正在尝试按照这里的教程实现一个自定义的特征预处理推理管道。它使用python的sklearn sdk从脚本中引入自定义的预处理管道。例如:
from sagemaker.sklearn.estimator import SKLearnscript_path = 'preprocessing.py'sklearn_preprocessor = SKLearn( entry_point=script_path, role=role, train_instance_type="ml.c4.xlarge", sagemaker_session=sagemaker_session)
然而,我找不到发送多个文件的方法。我需要多个文件的原因是我在sklearn管道中使用了一个自定义类,需要从一个自定义模块中导入。如果不导入,会因为pickle的工作方式(至少我认为与pickle有关)而在同一个preprocessing.py文件中出现自定义类时引发错误AttributeError: module '__main__' has no attribute 'CustomClassName'
。
有人知道是否可以发送多个文件吗?
我是Sagemaker的新手,谢谢!!
回答:
有一个source_dir参数,它会将一个目录中的文件“提升”到容器中,并将其放置在你的导入路径上。
你的入口点脚本也应该放在那里,并从那个位置引用。