繁体   English   中英

将预训练的 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 ...

我错过了什么?

在示例笔记本中,model 在 SageMaker 中进行训练。 所以它是用某些环境变量创建的,比如“SAGEMAKER_PROGRAM”(我认为,需要检查文档),并将值设置为入口点脚本。

但是,当您使用在 SageMaker 外部训练的模型创建 model 时,您需要添加这些环境变量。

如果没有入口点脚本,SageMaker 不会在 position 中知道如何处理请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM