Python 3.x SageMaker脚本模式服务

Python 3.x SageMaker脚本模式服务,python-3.x,amazon-web-services,tensorflow-serving,amazon-sagemaker,Python 3.x,Amazon Web Services,Tensorflow Serving,Amazon Sagemaker,我使用SageMaker脚本模式训练了tensorflow.keras模型,如下所示: import os import sagemaker from sagemaker.tensorflow import TensorFlow estimator = TensorFlow(entry_point='train.py', source_dir='src', train_instance_type=tr

我使用SageMaker脚本模式训练了tensorflow.keras模型,如下所示:

import os

import sagemaker
from sagemaker.tensorflow import TensorFlow

estimator = TensorFlow(entry_point='train.py',
                       source_dir='src',
                       train_instance_type=train_instance_type,
                       train_instance_count=1,
                       hyperparameters=hyperparameters,
                       role=sagemaker.get_execution_role(),
                       framework_version='1.12.0',
                       py_version='py3', 
                       script_mode=True)

但是,在调用
estimator.deploy()
时,如何指定服务代码是什么?默认情况下是什么?还有没有办法使用脚本模式修改nginx.conf?

Tensorflow容器是开源的:您可以查看它的工作方式。当然,您可以调整它,在本地构建它,将它推送到ECR并在SageMaker上使用:)

通常,可以通过两种方式进行部署:

  • 基于Python的端点:

  • TensorFlow服务端点:


我还建议看一下这里的TensorFlow示例:

在脚本模式下,默认的服务方法是基于TensorFlow服务的方法: 基于TFS的容器不允许使用自定义脚本。您可以使用SERVICE_input_receiver_fn指定输入数据的处理方式,如下所述:

至于修改ngnix.conf,没有支持的方法。根据您想要在配置文件中更改的内容,您可以破解sagemaker python sdk,为这些环境变量传递不同的值:


在这里可以覆盖环境变量:

Hi。是的,我以前一直在建造它,并推动ECR。想知道我是否可以为了方便而使用脚本模式,但仍然指定我的服务脚本?SageMaker说:SageMaker提供了两个不同的选项,用于将TensorFlow模型部署到SageMaker端点:第一个选项使用基于Python的服务器,允许您在Python脚本中指定自己的自定义输入和输出处理函数。这是默认选项。第二个选项使用基于TensorFlow服务的服务器来提供TensorFlow服务RESTAPI的超集。此选项不需要(或允许)自定义python script.Hmm。以前读过,但现在重读一遍,我想我也许可以这样做。python服务堆栈仍然使用它们自己的service.py,但是也许我不需要修改它来获得我想要的?我创建模型。但是找不到ngnix.conf错误@Austin