我使用的是tensorflow模型,它保存如下:
tf-model
00000123
assets
variables
variables.data-00000-of-00001
variables.index
keras_metadata.pb
saved_model.pbtf模型正在被拾取,它是作为端点工作的,当我将sagemaker内部的预测器对象与端点关联起来并运行它时,它将返回我所期望的结果。
但是,我想用POST json来推断它,我想要一个POST json返回,就像sklearn、xgb或py手电端点一样。
我试图在作为入口点传递的inference.py上实现这一点,但是无论我尝试什么,端点似乎都忽略了inference.py脚本。
我使用的脚本与本页末尾所提供的几乎完全相同:tf.html
我尝试过这两个版本(输入/输出处理程序+仅仅处理程序),我尝试将它保存在sagemaker环境中,我尝试将它打包到tar.gz文件中,我将它放入一个s3桶中,并为它设置指针和环境变量(通过tensorflowmodel模型kwarg),但是不管我尝试了什么,它都忽略了inference.py。
我知道它会忽略它,因为我已经在输入处理程序的应用程序/json上做了一些小的编辑,而且这些编辑都没有出现,即使我更改了它,所以它只需要文本/csv或其他一些更改没有反映的内容。
我做错了什么?如何使tensorflow无服务器环境返回输出的POST,而不是按照它的默认行为将输出保存到s3?
发布于 2022-05-20 18:56:49
未处理过的模型工件应该如下所示:( infrence.py位于代码/文件夹中)
model1
|--[model_version_number]
|--variables
|--saved_model.pb
model2
|--[model_version_number]
|--assets
|--variables
|--saved_model.pb
code
|--lib
|--external_module
|--inference.py请参阅此链接以获得更多信息。
尽管如此,默认情况下,对于SageMaker TensorFlow服务容器的请求和响应,支持TensorFlow。
因此,您可以发送一个JSON (使用模型所期望的正确的张量形状)并接收JSON响应。
这里的问题/回答解释了如何使用邮递员发出邮政请求。
https://stackoverflow.com/questions/72207998
复制相似问题