首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TensorFlow服务:使用REST Api向TFServing模型发送多个输入的字典?

在 TensorFlow Serving 中,你可以使用 REST API 向模型发送多个输入的字典。以下是一个详细的步骤指南,展示如何使用 REST API 向 TensorFlow Serving 模型发送包含多个输入的字典。

1. 启动 TensorFlow Serving

首先,确保你已经启动了 TensorFlow Serving 并加载了你的模型。假设你的模型名称是 my_model,并且它在端口 8501 上运行。

代码语言:javascript
复制
docker run -p 8501:8501 --name=tfserving_my_model --mount type=bind,source=/path/to/your/model,destination=/models/my_model -e MODEL_NAME=my_model -t tensorflow/serving

2. 准备输入数据

假设你的模型接受两个输入:input_1input_2。你需要将这些输入数据组织成一个字典,并将其转换为 JSON 格式。

代码语言:javascript
复制
import json

# 准备输入数据
data = {
    "signature_name": "serving_default",
    "instances": [
        {
            "input_1": [1.0, 2.0, 3.0],
            "input_2": [4.0, 5.0, 6.0]
        },
        {
            "input_1": [7.0, 8.0, 9.0],
            "input_2": [10.0, 11.0, 12.0]
        }
    ]
}

# 将数据转换为 JSON 格式
json_data = json.dumps(data)

3. 发送请求

使用 requests 库向 TensorFlow Serving 发送 POST 请求。

代码语言:javascript
复制
import requests

# TensorFlow Serving REST API URL
url = 'http://localhost:8501/v1/models/my_model:predict'

# 发送 POST 请求
response = requests.post(url, data=json_data, headers={"content-type": "application/json"})

# 打印响应
print(response.json())

4. 处理响应

响应将包含模型的预测结果。你可以根据需要处理这些结果。

代码语言:javascript
复制
# 处理响应
predictions = response.json()['predictions']
for i, prediction in enumerate(predictions):
    print(f"Prediction for instance {i}: {prediction}")

完整示例

以下是一个完整的示例代码,展示了如何准备输入数据、发送请求并处理响应。

代码语言:javascript
复制
import json
import requests

# 准备输入数据
data = {
    "signature_name": "serving_default",
    "instances": [
        {
            "input_1": [1.0, 2.0, 3.0],
            "input_2": [4.0, 5.0, 6.0]
        },
        {
            "input_1": [7.0, 8.0, 9.0],
            "input_2": [10.0, 11.0, 12.0]
        }
    ]
}

# 将数据转换为 JSON 格式
json_data = json.dumps(data)

# TensorFlow Serving REST API URL
url = 'http://localhost:8501/v1/models/my_model:predict'

# 发送 POST 请求
response = requests.post(url, data=json_data, headers={"content-type": "application/json"})

# 打印响应
print(response.json())

# 处理响应
predictions = response.json()['predictions']
for i, prediction in enumerate(predictions):
    print(f"Prediction for instance {i}: {prediction}")

注意事项

  1. 模型签名:确保 signature_name 与模型的签名名称匹配。默认情况下,TensorFlow Serving 使用 serving_default 签名。
  2. 输入格式:确保输入数据的格式与模型的输入格式匹配。输入数据应为 JSON 格式,并且每个输入字段的名称和数据类型应与模型的输入签名一致。
  3. 错误处理:在实际应用中,添加错误处理代码以处理可能的请求失败或响应错误。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

怎样用英伟达TensorRT优化TensorFlow Serving性能?谷歌工程师一文详解

/resnet 中已下载 SavedModel,并在主机中开放 REST API 端口 8501。...resnet_client.py 会发送一些图像给服务器,并返回服务器所作预测。现在让我们终止 TensorFlow Serving 容器运行,以释放所占用 GPU 资源。...$ docker kill tfserving_resnet 注:REST API 链接 https://www.tensorflow.org/tfx/serving/api_rest 利用 TF-TRT...请注意,转换后模型无法处理批次规模大于此处所指定大小输入,但可处理批次规模更小输入 —is_dynamic_op 指示在模型运行时进行实际转换。...0.0.0.0:8500 … … server.cc:302] Exporting HTTP/REST API at:localhost:8501 … 发送请求: $ python /tmp/resnet

3.3K40
  • 有赞算法平台之模型部署演进

    ABox 主要提供将模型部署为在线服务功能, 主要包含以下功能: 1. 提供 tensorflow 模型服务加载和版本管理、弹性部署 2....提供 tensorflow 模型和其他模型服务(自己部署在额外服务器上)路由管理 3. 提供模型输入和输出自定义处理逻辑执行 4. 提供服务主机负载均衡管理 5....: master: 业务请求路由 根据 zookeeper 上动态路由选择将请求直接路由给可以访问服务(这里包括TF-Serving 服务和第三方注册REST服务多个服务之间采用轮询方式),...worker 节点资源使用容易不均衡 痛点3 资源未隔离 热点模型占用大量CPU/内存,容易影响其他模型服务 痛点4 缺乏通用性 模型服务无法统一管理, tensorflow 模型和其他框架模型管理割裂...implementation 指定此次 Model Server 使用预置 tfserving 服务器, 并且需要指定模型 modelUri 地址。

    1.2K32

    【技术分享】深入了解tensorflow模型存储格式

    导语 做模型同学基本都会使用tensorflow,不知道大家是否会像我一样对tensorflow模型存储感到疑惑:各种模型保存方法、保存出模型文件名称和结构还不一样、加载模型时候有的需要重新定义一遍计算图而有的不需要...这篇文章会带大家了解每个模型文件分别包含什么内容、计算图是以什么样形式保存在文件中。 以下讨论api都是基于tensorflow1.15版本。...2.1 文件内容 *.index文件是采用特殊拼接格式将多个protobuf拼接得到。...计算图正是通过这种节点定义方式,用input属性将节点关联起来,从而形成了从输入到输出无环图。 回过头去看x定义,shape很好理解,就是x形状是两维,第一维维度待定,第二维为100维。...通过saved_mode提供api我们其实可以任意指定某个节点作为输入或输出,比如指定inputs为空、outputs为layer2/W,这样tfserving加载模型之后就知道不需要请求中有任何赋值

    3K30

    掌声送给TensorFlow 2.0!用Keras搭建一个CNN | 入门教程

    下载数据并进行预处理 使用 Keras 高级 API 构建和训练图像分类器 下载 InceptionV3 卷积神经网络并对其进行微调 使用 TensorFlow Serving 为训练好模型发布服务接口...Kearas Functional API 构建,在 Keras中 还有另一种构建模型方式,即使用 Model Subclassing API,它按照面向对象结构来构建模型并定义它传递过程...4.4 TensorFlow服务发送 REST请求 TensorFlow ModelServer 支持 RESTful API。...我们需要将预测请求作为一个 POST,发送服务 REST 端点。在发送 POST 请求之前,先加载示例图像,并对它做一些预处理。...下面的代码先加载了输入图像,并对其进行了预处理,然后使用上面的 REST 端点发送 POST 请求: import json, requestsfrom tensorflow.keras.preprocessing.image

    1.5K30

    TensorFlow 2.0入门

    高级API构建和训练图像分类器模型 下载和微调InceptionV3卷积神经网络 使用TensorFlow服务为受过训练模型提供服务 本教程中所有代码都可以在Jupyter笔记本中GitHub存储库中找到...然而在Keras中创建模型另一种方法是使用KerasModel Subclassing API,它遵循面向对象结构来构建模型并定义它传递。.../inceptionv3_128_tf_flowers --rest_api_port:Tensorflow服务将在端口8500上启动gRPC ModelServer,并且REST API将在端口9000...TensorFlow服务器发出REST请求 TensorFlow ModelServer支持RESTful API。将一个预测请求作为POST发送服务REST端点。...TensorFlow服务服务器期望输入图像尺寸为(1,128,128,3),其中“1”是批量大小。使用Keras库中图像预处理工具将输入图像加载并转换为所需尺寸。

    1.8K30

    《Scikit-Learn、Keras与TensorFlow机器学习实用指南(第二版)》第19章 规模化训练和部署TensorFlow模型

    系统基础组件都可能需要这个模型用于实时数据,这种情况需要将模型包装成网络服务:这样的话,任何组件都可以通过REST API询问模型。随着时间推移,你需要用新数据重新训练模型,更新生产版本。...但随着基础架构扩张,最好是将模型包装在服务中,它唯一目的是做预测,其它组件查询就成(比如使用REST或gRPC API)。...tensorflow/serving 镜像名。 现在回到Python查询服务,先使用REST API,然后使用gRPC API。 用REST API查询TF Serving 先创建查询。...模型100%肯定第一张图是类7,99%肯定第二张图是类2,96%肯定第三章图是类1。 REST API既优雅又简单,当输入输出数据不大时,可以工作很好。...接着,服务发送请求,得到响应(需要用pip安装grpcio库): import grpc from tensorflow_serving.apis import prediction_service_pb2

    6.7K20

    kubeflow二次开发项目

    此注释允许: 将代码单元分配给特定管道组件 将多个单元格合并到一个管道组件中 定义它们之间(执行)依赖关系 Kale 将带注释 Jupyter Notebook 作为输入,并生成一个独立 Python...CRD,可以将单个或多个经过训练模型部署到模型服务运行时,例如TFServing、 TorchServe、Triton Inference Server。...此外,KFServer是在 KServe 中使用预测 v1 协议实现 Python 模型服务运行时, MLServer使用 REST 和 gRPC实现了预测 v2 协议。...KServe 提供基本 API 原语,让您轻松构建自定义模型服务运行时,您可以使用其他工具,如BentoML 构建您自定义模型服务图像。...使用 InferenceService 部署模型后,您将获得 KServe 提供以下所有无服务器功能。

    4.1K61

    在云中部署机器学习模型

    在最简单情况下,数据科学家提供模型和开发人员扩展模型可以封装在Docker容器中,并通过REST api访问。Docker容器可以在Kubernetes或OpenWhisk等无服务器平台上运行。...反之亦然,模型输出可能没有应用程序所需格式。 此外,有时执行批处理调用比为每个请求造成网络流量更有效。有时同时调用多个模型,并将响应一起发送回应用程序。...与移动设备优化类似,优化是在将模型部署到云之前完成服务标准要求 对于其他服务,需要处理身份验证和授权。为了使模型能够被多个应用程序和开发人员访问,我们需要API管理。...REST api并不是公开模型唯一方法。也许其他协议,比如gRPC或基于消息系统,对于特定场景来说是更好选择。 运行推断服务需要可扩展,并且需要监视功能。...它支持TensorFlow、Sklearn、REST和gRPC api等库。它可以用来学习深度学习。我尤其喜欢上面那种我称之为推理管道能力。

    1.1K20

    教程 | 如何使用Keras、Redis、Flask和Apache把深度学习模型部署到生产环境?

    我将使用它作为调用 REST API(来验证它确实正在工作)示例图像。 最后,我们将使用 stress_test.py 来压力测试我们服务器并衡量所有图像分类。...你可以修改代码以利用多个 GPU: 运行多个模型服务器进程; 为每个 GPU 维护一个图像队列以及相应模型进程。 但请记住,你机器仍然受到 I/O 设备限制。...图 4:使用 cURL 来测试我们 Keras REST API 服务器。图像为我家小猎犬 Jemma。她通过我们 ResNet 模型以 94.6% 置信度被分类为比格猎犬。...你可能想要使用数百 GB RAM 来启动一个巨大 Redis 服务器,以处理多个图像队列并为多个 GPU 机器提供服务。 这里问题将是 I/O 延迟和网络开销。...这意味着对于来自模型服务每个批请求,Redis 将需要提取 19MB 数据并将其发送服务器。

    3.9K110

    使用TensorFlow经验分享

    模型保存: 作用:将训练好模型保存起来。 7. 模型部署: 作用:将保存模型部署到服务器或本地以便提供使用。 三、搭建开发环境 目前我学习是Anaconda+tensorflow。 1....搭建python虚环境 建议在虚环境中操作,这样出现无法调整问题,直接删除虚环境即可,而且多个虚环境还可用多个tensorflow版本,不会出现冲突。...服务器安装docker 2. TF_Serving镜像下载 3. pb模型部署 4. 使用模型接口 七、项目实战问题 数据预处理: 1. gdcm找不到问题 2....如果加载模型后需要预测,需重新编译模型,将优化器加到模型中。 问题十:TFServing部署位置错误问题 出现原因: 服务器部署模型时,一直显示找不到模型。...解决办法: 模型必须放到TFServingmodels文件夹下才能被识别到,如果有多个模型,文件夹使用数字,会选择数字最大作为使用模型

    1.4K12

    当微信小程序遇上TensorFlow:Server端实现

    TensorFlow Serving可以轻松部署新算法和实验,同时保持相同服务器架构和API。...TensorFlow Serving需要使用SavedModel格式模型文件。...,启动tensorflow model server非常简单,这里加上rest_api_port参数是启动server,并提供RESTful API,这种API接口方便微信小程序与之进行通信。...简单说,Simple TensorFlow Serving是一个TensorFlow Serving封装,是机器学习模型通用且易于使用服务。...,无需编码 支持图像模型使用原始图片文件进行推断 支持详细请求统计指标 支持同时为多个模型提供服务 支持动态在线和离线模型版本 支持为TensorFlow模型加载新自定义操作 通过可配置基本身份验证支持安全身份验证

    1.2K20

    flask 应用程序编程接口(API)最后一节

    Fielding和其他REST纯粹主义者对评判一个API是否是REST API有严格规定,但软件行业在实际使用中引用REST是很常见。...因此,对于客户端来说,如果不直接连接到服务器,它发送请求方式应该没有同样,这个原则规定服务器兼容直接接收来自代理服务请求,所以它绝不能假设连接另一端一定是客户端 这是REST一个重要特性,因为能够添加中间节点这个特性...如果你想知道为什么REST需要无状态服务器,本质上是无状态服务器非常容易扩展,你只需在负载均衡器后面运行多个服务器实例即可。...如果服务器存储客户端状态,则事情会变得更复杂,因为你必须弄清楚多个服务器如何访问和更新该状态,或者确保给定客户端始终由同一服务器处理,这样机制通常称为会话。...如果您想查看第一条API路由工作原理,请启动服务器,然后在浏览器地址重定向输入以下URL: http://localhost:5000/api/users/1 也可以尝试使用大一些id值来查看SQLAlchemy

    5K10
    领券