使用 python 中的 boto3 客户端部署自定义 pytorch 模型。我注意到创建了一个新的 S3 存储桶,但没有可见对象。这有什么原因吗?
包含我的模型的存储桶的命名包含关键字“sagemaker”,因此我在那里没有任何问题。
这是我用于部署的代码:
remote_model = PyTorchModel(
name = model_name,
model_data=model_url,
role=role,
sagemaker_session = sess,
entry_point="inference.py",
# image=image,
framework_version="1.5.0",
py_version='py3'
)
remote_predictor = remote_model.deploy(
instance_type='ml.g4dn.xlarge',
initial_instance_count=1,
#update_endpoint = True, # comment or False if endpoint doesns't exist
endpoint_name=endpoint_name, # define a unique endpoint name; if ommited, Sagemaker will generate it based on used container
wait=True
)
最佳答案
它可能是由 SageMaker Python SDK 创建为默认存储桶。请注意,您编写的代码不是 boto3
(AWS python SDK),而是 sagemaker
( link ),SageMaker 特定的 Python SDK,即更高级别比boto3。
SageMaker Python SDK 在多个位置使用 S3,例如在使用框架估算器时暂存训练代码,以及在使用框架模型(您的案例)部署时暂存推理代码。它使您可以控制要使用的 S3 位置,但如果您不指定它,它可能会使用自动生成的存储桶(如果它具有这样做的权限)。
要控制代码暂存 S3 位置,您可以在 PyTorchEstimator
(训练)或 PyTorchModel
(服务)中使用参数 code_location
关于python - 为什么 AWS SageMaker 创建 S3 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65285203/