首页
学习
活动
专区
工具
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.4K40
  • 有赞算法平台之模型部署演进

    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加载模型之后就知道不需要请求中有任何赋值

    3.1K30

    掌声送给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中创建模型的另一种方法是使用Keras的Model 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.2K61

    在云中部署机器学习模型

    在最简单的情况下,数据科学家提供的模型和开发人员扩展的模型可以封装在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部署位置错误问题 出现原因: 服务器部署模型时,一直显示找不到模型。...解决办法: 模型必须放到TFServing的models文件夹下才能被识别到,如果有多个模型,文件夹使用数字,会选择数字最大的作为使用的模型。

    1.4K12

    Go中的机器学习与Python Sidecar

    在这个领域,Go 通常和其他编程语言一样受到良好支持;事实上,由于其网络原生特性,它对于此类应用程序来说尤其强大;引用 Go 博客文章中的话: 使用 LLM 服务通常意味着向网络服务发送 REST 或...与 Ollama 一样,它也为模型提供了 REST API。...如果这种定制的 LLM 适用于您的项目,请考虑直接运行 Ollama 或 Llamafile,并使用它们的 REST API 与模型进行通信。如果您需要更高程度的定制,请继续阅读。...我添加了一个简单的 echo 端点来测量这种影响;看一下测试它的 Go 客户端;在我的机器上,从 Go 向 Python 服务器发送 JSON 请求并返回 echo 响应的延迟平均约为 0.35 毫秒。...使用 Python 和 TensorFlow 在本地运行快速图像模型 这篇文章的最后一个示例混合了一些内容: 我们将使用一个简单的图像模型(而不是 LLM) 我们将使用 TensorFlow+Keras

    6110

    公有云上构建云原生 AI 平台的探索与实践 - GOTC 技术论坛分享回顾

    与此同时从深度学习框架的角度看,目前绝大多数的业务仍然在使用 TensorFlow。这与之前的观察有一定的相关性。搜索/广告/推荐业务中 TensorFlow 仍然占据了绝对的市场。...首先是在模型参数较多的情况下,梯度或参数通信时的网络带宽需求很高,网络会成为训练过程中的瓶颈。这一问题在稠密类模型的训练中尤为明显。其次,在一个运行深度学习任务的集群上,往往运行着多个深度学习任务。...最底层依然是云服务器组成的 Kubernetes 集群,模型一般而言会存储在对象存储中,模型服务则会通过 TFServing、Triton Inference Server 或者自研服务框架的方式对外提供服务...由于部分业务的端到端流程相对复杂,有繁复的前处理和后处理环节。如果使用 TFServing 或者 Triton Inference Server来实现,逻辑会尤为复杂。...尽管 TFServing 和 Triton Inference Server 在开源领域广受关注,但是目前仍有相当规模的业务使用自研服务框架。

    87941
    领券