我必须对一些数据进行大规模特征工程。我当前的方法是使用启动实例SKLearnProcessor,然后通过选择更大的实例大小或增加实例数量来扩展作业。我需要使用一些默认情况下未安装在 Sagemaker 实例上的软件包,因此我想使用 .whl 文件安装这些软件包。
另一个障碍是 Sagemaker 角色无法访问互联网。
import boto3
import sagemaker
from sagemaker import get_execution_role
from sagemaker.sklearn.processing import SKLearnProcessor
sess = sagemaker.Session()
sess.default_bucket()
region = boto3.session.Session().region_name
role = get_execution_role()
sklearn_processor = SKLearnProcessor(framework_version='0.20.0',
role=role,
sagemaker_session = sess,
instance_type="ml.t3.medium",
instance_count=1)
sklearn_processor.run(code='script.py')
尝试的解决方案:
将包上传到 CodeCommit 存储库并将存储库克隆到 SKLearnProcessor 实例中。因错误而失败fatal: could not read Username for 'https://git-codecommit.eu-west-1.amazonaws.com': No such device or address
。我尝试将存储库克隆到 sagemaker 笔记本实例中并且它可以工作,所以这不是我的脚本的问题。
使用 bash 脚本通过 CLI 从 s3 复制包。我使用的 bash 脚本基于这篇文章。但包永远不会被复制,并且不会抛出错误消息。
还研究了使用该包s3fs
,但似乎不适合复制轮文件。
备择方案
我的客户对于是否从自定义 Docker 镜像启动容器犹豫不决。还有其他选择吗?
慕森王
弑天下
相关分类