当前位置: 首页 > 知识库问答 >
问题:

服务于restful请求的tensorflow如何发布列表对象

艾翼
2023-03-14

我创建了一个tensorflow模型,并使用tensorflow来部署这个模型,但是当我可以构建restful请求时,模型需要

curl-d'{“实例”:[[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1]}'
-x POST http://localhost:8501/v1/models/shipping_predict:predict

它回调“error”:“instances是一个普通列表,但需要对象列表作为tensorinfo_map所需的多个输入张量”

这是我的模特

# prepare each input head
in_layers = list()
em_layers = list()
#
# customer
in_layer_customer = Input(shape=(1,))
em_layer_customer = Embedding(5000, 10)(in_layer_customer)
em_layer_customer = layers.Reshape([1 * 10])(em_layer_customer)
in_layers.append(in_layer_customer)
em_layers.append(em_layer_customer)

# salesman
in_layer_sale = Input(shape=(1,))
em_layer_sale = Embedding(500, 10)(in_layer_sale)
em_layer_sale = layers.Reshape([1 * 10])(em_layer_sale)
in_layers.append(in_layer_sale)
em_layers.append(em_layer_sale)

# business_type
in_layer_businessType = Input(shape=(1,))
em_layer_businessType = Embedding(100, 10)(in_layer_businessType)
em_layer_businessType = layers.Reshape([1 * 10])(em_layer_businessType)
in_layers.append(in_layer_businessType)
em_layers.append(em_layer_businessType)

# 20
in_layer_20 = Input(shape=(1,))
em_layer_20 = layers.Dense(16, activation='relu')(in_layer_20)
in_layers.append(in_layer_20)
em_layers.append(em_layer_20)

# 40
in_layer_40 = Input(shape=(1,))
em_layer_40 = layers.Dense(16, activation='relu')(in_layer_40)
in_layers.append(in_layer_40)
em_layers.append(em_layer_40)

# 45
in_layer_45 = Input(shape=(1,))
em_layer_45 = layers.Dense(16, activation='relu')(in_layer_45)
in_layers.append(in_layer_45)
em_layers.append(em_layer_45)

# other 
in_layer_other = Input(shape=(1,))
em_layer_other = layers.Dense(16, activation='relu')(in_layer_other)
in_layers.append(in_layer_other)
em_layers.append(em_layer_other)

# dischargingPort
in_layer_dischargingPortName = Input(shape=(1,))
em_layer_dischargingPortName = Embedding(5000, 10)(in_layer_dischargingPortName)
em_layer_dischargingPortName = layers.Reshape([1 * 10])(em_layer_dischargingPortName)
in_layers.append(in_layer_dischargingPortName)
em_layers.append(em_layer_dischargingPortName)

# MBL Method
in_layer_mbl = Input(shape=(1,))
em_layer_mbl = layers.Dense(16, activation='relu')(in_layer_mbl)
in_layers.append(in_layer_mbl)
em_layers.append(em_layer_mbl)

# atdMouth
in_layer_atdMouth = Input(shape=(1,))
em_layer_atdMouth = Embedding(100, 10)(in_layer_atdMouth)
em_layer_atdMouth = layers.Reshape([1 * 10])(em_layer_atdMouth)
in_layers.append(in_layer_atdMouth)
em_layers.append(em_layer_atdMouth)

merge = Concatenate()(em_layers)
dense = Dense(32, activation='relu')(merge)

output = Dense(1)(dense)
model = Model(inputs=in_layers, outputs=output)

共有1个答案

谢诚
2023-03-14

实例是一个普通的列表,但需要将对象列表作为多个输入张量

不管出于什么原因,听起来你的模型都在期待命名张量。这不是我以前使用过的东西,但似乎有另一种方式向您的模型发送请求。

curl -X POST -i 'http://192.168.1.16:8501/v1/models/export:predict' --data '
{
  "signature_name":  "serving_default",
  "inputs": [
    {
      "tokens_0" :["text text text text text text text text text text"],
      "length_0": [1],
      "tokens_1": ["01 01 01 01 01 01 01 01 01 01"],
      "length_1": [1],
      "tokens_2": ["4 4 4 1 1 4 4 4 4 4"],
      "length_2": [1]
    }
  ]
}'

我刚刚从这里复制了这个例子(归功于@ishaan-sharma)。

您的模型不是微不足道的,所以我不会尝试为您创建准确的请求。如果不确定张量名称等,可以使用saved_model_cli签出预期的形状:

saved_model_cli show [-h] --dir DIR [--all]
 类似资料:
  • 可能重复:<br>Android,通过HTTP POST(SOAP)发送XML 如何在Android系统中发布SOAP服务请求? 请给我举个例子 谢谢你和我分享知识

  • 问题内容: 当我在Node服务器上打印请求的内容时,在任何地方都看不到用户数据。 这是我的节点服务器: 这是Angular2代码: 任何人都可以帮我或解释如何处理角度的http请求。 问题答案: 那是你的服务器: 那是您的有角度的客户: 回购https://github.com/kuncevic/angular-httpclient- examples

  • 我试图从java向一个现有的RESTful服务发出一个< code>POST请求,以便获得json响应并将其存储在一个字符串中。 让我们假设RESTful Service Url如下所示: 这是一种带有产品的商店,您想要搜索商品。为了进行搜索,您还必须发送, 如下所示: 为了发布这篇文章,我在java中实现了以下方法: 例外情况如下: 我不知道为什么我会得到这个例外,但如果你有一个想法或者你也面临

  • 我被夹在中间。我想实现一个POST方法,使用HttpUrlConnection向服务器发送注册用户的电子邮件、名称和密码。以下是我的代码: 我不知道我在哪里犯了错误。我收到以下回复 空格后的“0”是超文本传输协议响应代码返回的响应代码。当我在浏览器中尝试时,我的网址是正确的。我不知道我在哪里犯了错误;是我的服务器故障还是我的代码有错误,因为我不认为我的代码有任何交互处理。 我是Android开发的

  • 控制器: 当post执行时,我会得到以下错误: servlet[dispatcherServlet]的servlet.service()在路径[]上下文中抛出异常[请求处理失败;嵌套异常是org.springframework.http.converter.httpmessageConversionException:类型定义错误:[simple Type,class de.lukas.broet

  • 我创建了一个RESTful web服务(C#,WCF),它实现了以下接口: 其中,Test()方法只返回给定的内容(或默认的Test字符串)以及调用该方法时的时间戳。 该服务是公开可用的,因此当我在任何浏览器中输入url时: 它返回json字符串(或任何可能使用在末尾)。 我希望Salesforce将数据发布到此Web服务。 我的apex类看起来是这样的-当在Salesforce中插入一个对象时会