我得到的是tensorflow 模型- .tflite文件和.pb文件+带/variables文件夹的labelmap.pbtxt文件。当我在我的应用程序上测试模型时,我使用.tflite文件,它工作得很好,但现在我决定将模型存储在服务器端。为了避免扩展,安全问题,我决定使用Vertex AI。
我能够使用.pb + labelmap.pbtxt文件导入我的模型,并创建端点到它=到目前为止一切顺利。现在,我确实想测试一下,这就是混乱的地方。
如果我前往DEPLOY AND TEST section,它需要发送JSON格式以接收响应。这与我的移动的应用程序有很大的不同,因为我只是将位图传递给模型,然后它检索结果。好吧,那很好,我想我可以编码base64格式的图像并将其传递给模型,但这是我不知道如何正确完成的地方。
Json示例:
{"instances": [{ "instance_key_1": "value", ... }, ...],"parameters": { "parameter_key_1": "value", ... }, ...}
parameter_key_1是什么?
我没有配置这样的东西。
我试过:
{ "instances": [ { "b64": "long_64_value_of_image" } ] }
和
{ "instances": [ { "image": "long_64_value_of_image" } ] }
我收到:“error”:“无法处理元素:0个“示例”列表。错误:INVALID_ARGUMENT:JSON值:...
是否有一些简单的方法来添加额外的配置(似乎我错过了一些东西在这里),并传递简单的预处理图像(在客户端已经完成)到这个端点轻松(例如传递base64字符串并获得结果?).
根据我的.tflite模型文件所述(我假设.pb文件与我用于将模型上传到Vertex AI的文件相同):
Input Tensor: [<tf.Tensor 'input:0' shape=(1, 320, 320, 3) dtype=float32>, <tf.Tensor 'unknown:0' shape=() dtype=resource>...and
Output Tensor: [<tf.Tensor 'Identity:0' shape=() dtype=float32>, <tf.Tensor 'Identity_1:0' shape=() dtype=float32>, <tf.Tensor 'Identity_2:0'
如何构造json,将其作为Image<float32>
传递?如有任何帮助,我们将不胜感激。
1条答案
按热度按时间xqkwcwgp1#
试试下面这些,让我们看看会发生什么。
JSON:
注意:在您的案例中,您提到模型的输入Tensor定义为:
您需要确保'base64_encoded_image_string_here'对应的图像具有正确的形状和数据类型。在这种情况下,图像的形状应该是(1,320,320,3),数据类型应该是float32。
Python来构造JSON请求:
参考:https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/explainable_ai/sdk_custom_image_classification_batch_explain.ipynb
https://cloud.google.com/vertex-ai/docs/general/base64