将预训练的 Tensorflow 模型部署到 sagemaker 中的一个端点(一个端点的多模型)时出错?
Error when deploying pre trained Tensorflow models to one endpoint (multimodel for one endpoint) in sagemaker?
我正在关注 aws 中的这个示例 https://github.com/aws-samples/sagemaker-multi-model-endpoint-tensorflow-computer-vision/blob/main/multi-model-endpoint-tensorflow-cv.ipynb
对两个预训练模型(在 sagemaker 之外训练)应用相同的工作流程。
但是当我执行以下操作时,日志显示找不到模型:
import boto3
import datetime
from datetime import datetime
import time
import sagemaker
from sagemaker import get_execution_role
from sagemaker.tensorflow.serving import TensorFlowModel
from sagemaker.multidatamodel import MultiDataModel
model_data_prefix = f's3://{BUCKET}/{PREFIX}/mme/'
output = f's3://{BUCKET}/{PREFIX}/mme/test.tar.gz'
modele = TensorFlowModel(model_data=output,
role=role,
image_uri=IMAGE_URI)
mme = MultiDataModel(name=f'mme-tensorflow-{current_time}',
model_data_prefix=model_data_prefix,
model=modele,
sagemaker_session=sagemaker_session)
predictor = mme.deploy(initial_instance_count=1,
instance_type='ml.m5.2xlarge',
endpoint_name=f'mme-tensorflow-{current_time}')
当我将图像作为输入进行预测时,我收到以下消息:
ModelError: An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (500) from model with message "<html>
<head>
<title>Internal Server Error</title>
</head>
<body>
<h1><p>Internal Server Error</p></h1>
</body>
</html>
".
日志给出:
Could not find base path /opt/ml/models/.../model for servable ...
我错过了什么?
在示例笔记本中,模型是在 SageMaker 中训练的。所以它是用某些环境变量创建的,比如“SAGEMAKER_PROGRAM”(我认为,需要检查文档),值设置为入口点脚本。
但是当您使用在 SageMaker 外部训练的模型创建模型时,您需要添加这些环境变量。
没有入口点脚本,SageMaker 无法知道如何处理请求。
我正在关注 aws 中的这个示例 https://github.com/aws-samples/sagemaker-multi-model-endpoint-tensorflow-computer-vision/blob/main/multi-model-endpoint-tensorflow-cv.ipynb 对两个预训练模型(在 sagemaker 之外训练)应用相同的工作流程。
但是当我执行以下操作时,日志显示找不到模型:
import boto3
import datetime
from datetime import datetime
import time
import sagemaker
from sagemaker import get_execution_role
from sagemaker.tensorflow.serving import TensorFlowModel
from sagemaker.multidatamodel import MultiDataModel
model_data_prefix = f's3://{BUCKET}/{PREFIX}/mme/'
output = f's3://{BUCKET}/{PREFIX}/mme/test.tar.gz'
modele = TensorFlowModel(model_data=output,
role=role,
image_uri=IMAGE_URI)
mme = MultiDataModel(name=f'mme-tensorflow-{current_time}',
model_data_prefix=model_data_prefix,
model=modele,
sagemaker_session=sagemaker_session)
predictor = mme.deploy(initial_instance_count=1,
instance_type='ml.m5.2xlarge',
endpoint_name=f'mme-tensorflow-{current_time}')
当我将图像作为输入进行预测时,我收到以下消息:
ModelError: An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (500) from model with message "<html>
<head>
<title>Internal Server Error</title>
</head>
<body>
<h1><p>Internal Server Error</p></h1>
</body>
</html>
".
日志给出:
Could not find base path /opt/ml/models/.../model for servable ...
我错过了什么?
在示例笔记本中,模型是在 SageMaker 中训练的。所以它是用某些环境变量创建的,比如“SAGEMAKER_PROGRAM”(我认为,需要检查文档),值设置为入口点脚本。
但是当您使用在 SageMaker 外部训练的模型创建模型时,您需要添加这些环境变量。
没有入口点脚本,SageMaker 无法知道如何处理请求。