Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Sagemaker:指定自定义入口点会导致找不到错误_Python_Amazon Web Services_Tensorflow_Tensorflow Serving_Amazon Sagemaker - Fatal编程技术网

Python Sagemaker:指定自定义入口点会导致找不到错误

Python Sagemaker:指定自定义入口点会导致找不到错误,python,amazon-web-services,tensorflow,tensorflow-serving,amazon-sagemaker,Python,Amazon Web Services,Tensorflow,Tensorflow Serving,Amazon Sagemaker,我正在尝试将使用tensorflow训练的对象检测模型部署到sagemaker。在模型创建期间,我可以在不指定任何入口点的情况下部署它,但事实证明,这样做只适用于小尺寸的图像(Sagemaker限制为5MB)。我使用的代码如下: 来自sagemaker.tensorflow.service导入模型的 #初始化模型。。。 模型( 模型\数据=s3\路径\对于\模型, 角色=sagemaker\u角色, framework_version=“1.14”, 环境=环境) #部署模型。。。 predic

我正在尝试将使用tensorflow训练的对象检测模型部署到sagemaker。在模型创建期间,我可以在不指定任何入口点的情况下部署它,但事实证明,这样做只适用于小尺寸的图像(Sagemaker限制为5MB)。我使用的代码如下:

来自sagemaker.tensorflow.service导入模型的

#初始化模型。。。
模型(
模型\数据=s3\路径\对于\模型,
角色=sagemaker\u角色,
framework_version=“1.14”,
环境=环境)
#部署模型。。。
predictor=model.deploy(初始实例计数=1,
实例(type='ml.t2.medium')
#使用图像进行测试。。。
进口cv2
将numpy作为np导入
image\u content=cv2.imread(“路径到图像”,
1) .astype('uint8').tolist()
正文={“实例”:[{“输入”:图像内容}]}
#适用于小图像。。。
#我完全可以用这个预测。。。
结果=预测值。预测值(身体)
所以,我搜索了一下,发现我需要为
Model()
传递一个
entry\u点,以便预测更大的图像。比如:

model=model(
entry_point=“inference.py”,
依赖项=[“requirements.txt”],
模型\数据=s3\路径\对于\模型,
角色=sagemaker\u角色,
framework_version=“1.14”,
环境=环境
)
但是这样做会导致FileNotFoundError:[Errno 2]没有这样的文件或目录:“inference.py”。请帮我一点忙。我使用的是sagemaker python sdk
。 我的文件夹结构如下:

model
    |__ 001
          |__saved_model.pb
          |__variables
                |__<contents here>

    |__ code
          |__inference.py
          |__requirements.txt

模型
|__ 001
|__已保存的_model.pb
|__变数
|__
|__代码
|__推理机
|__requirements.txt
注意:我也尝试过,./code/inference.py和/code/inference.py


5MB是实时端点的硬限制

您确定需要传递如此大的图像进行预测吗?大多数用例可以很好地处理更小、更低分辨率的图像

如果需要实时预测,一种解决方法是在预测请求中传递图像s3uri(而不是图像本身),然后从S3加载图像


如果您不需要实时预测,那么您应该看看batch transform,它不强制执行大小限制:

Hi,谢谢您的回复。我需要实时预测,所以批处理转换不太适合我。你能详细说明一下吗(或者给我提供一些文件或文章)<代码>如果需要实时预测,一种解决方法是在预测请求中传递图像S3URI(而不是图像本身),然后从S3加载图像。没有示例,抱歉。我将使用TF服务的预处理函数从S3复制图像。嗨,普拉梅什,你能解决这个问题吗?@MLDev是的,我相信我能解决这个问题。但是,老实说,我再也不想经历那种痛苦了。我为此写了一篇博客。我希望这有帮助。