从Python API而不是saved_model_cli中提取(或设置)输入/输出TF张量名称信息

2024-02-04

我使用 Keras/TF2.5 训练了一个简单的模型并将其保存为已保存模型。

tf.saved_model.save(my_model,'/path/to/model')

如果我通过检查它

saved_model_cli show --dir /path/to/model --tag_set serve --signature_def serving_default

我得到这些输出/名称:

inputs['conv2d_input'] tensor_info:
  dtype: DT_FLOAT
  shape: (-1, 32, 32, 1)
  name: serving_default_conv2d_input:0
outputs['dense'] tensor_info:
  dtype: DT_FLOAT
  shape: (-1, 2)
  name: StatefulPartitionedCall:0

名字serving_default_conv2d_input and StatefulPartitionedCall其实可以用来推理。

我想使用 python API 提取它们。如果我通过加载模型来查询它:

>>> m=tf.saved_model.load('/path/to/model')
>>> m.signatures['serving_default'].inputs[0].name
'conv2d_input:0'
>>> m.signatures['serving_default'].outputs[0].name
'Identity:0'

我得到完全不同的名字。

问题:

  1. 我怎样才能提取这些名字serving_default_conv2d_input and StatefulPartitionedCall来自Python API?
  2. 或者,当我打电话时如何定义/修复名称tf.saved_model.save?
  3. 什么是:0 mean?

还有附带问题:

如何通过 SavedModel 将 TF 模型部署到生产环境?


显示的输入/输出张量名称saved_model_cli可以提取如下:

from tensorflow.python.tools import saved_model_utils

saved_model_dir = '/path/to/model'
tag_set = 'serve'
signature_def_key = 'serving_default'

# 1. Load MetaGraphDef with saved_model_utils
meta_graph_def = saved_model_utils.get_meta_graph_def(saved_model_dir, tag_set)

# 2. Get input signature names
input_signatures = list(meta_graph_def.signature_def[signature_def_key].inputs.values())
input_names = [signature.name for signature in input_signatures]
print(input_names)  # ['serving_default_conv2d_input:0']

# 3. Get output signature names
output_signatures = list(meta_graph_def.signature_def[signature_def_key].outputs.values())
output_names = [signature.name for signature in output_signatures]
print(output_names)  # ['StatefulPartitionedCall:0']

关于其含义:0, op_name:0意思是“作为称为操作的第 0 个输出的张量op_name”所以你可能会使用…:1获取具有多个输出的操作的输出,但许多操作是单输出,因此您将始终使用…:0对于他们来说(来源:@mrry 的评论 https://stackoverflow.com/questions/38933793/how-to-get-reference-by-name-of-variable-placeholder/38935343#comment65228638_38935343%5Dhttps://stackoverflow.com/questions/38933793/how-to-get-reference-by-name-of-variable-placeholder/38935343#comment65228638_38935343).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从Python API而不是saved_model_cli中提取(或设置)输入/输出TF张量名称信息 的相关文章

  • 将字符串转换为浮点数列表(在 python 中)

    出于数据存储的目的 我尝试从 txt 文件恢复浮点列表 从字符串中可以看出 a 1 3 2 3 4 5 我想恢复 a 1 3 2 3 4 5 我期待一个简单的解决方案 例如list a 但我找不到类似的东西 Use the AST模块 Ex
  • 从 Python 中的 message_from_string() 获取发件人地址

    有人可以告诉我如何在Python中从email message from string 获取发件人地址吗 谢谢 我试过 message email message from string email text from message Fr
  • 使用 pyppeteer 与 asyncio 关联来抓取内容

    我用 python 结合编写了一个脚本pyppeteer随着asyncio从其登陆页面抓取不同帖子的链接 并最终通过跟踪通向其内页的 url 来获取每个帖子的标题 我这里解析的内容不是动态的 但是 我利用了pyppeteer and asy
  • 如何使用 tkinter 使用网格功能显示不同的图像?

    我想使用显示文件夹中的图像grid 但是当我尝试使用以下代码时 我得到了迭代单个图像的输出 My code def messageWindow win Toplevel path C Users HP Desktop dataset for
  • 使用 keras 澄清 Yolo v3 模型输出

    我将 yolo v3 模型与 keras 一起使用 该网络为我提供了形状如下的输出容器 1 13 13 255 1 26 26 255 1 52 52 255 所以我找到了这个link https www cyberailab com ho
  • MacOS Big Sur 中的 NPM 错误“找不到 Python 可执行文件”

    我已经花了整整一周的时间寻找这个问题的答案 但没有成功 我查看了每个 StackOverflow 帖子 Google 的每一篇文章以及我能找到的每个相关的 Github 问题 大多数相关错误似乎都比较旧 所以我想知道我的问题是否由于我使用的
  • TemplateSyntaxError:“settings_tags”不是有效的标签库

    当我尝试运行此测试用例时 出现此错误 这是在我的 django 应用程序的tests py 中编写的 def test accounts register self self url http royalflag com pk accoun
  • 导入 SciPy 或 scikit-image,“from scipy.linalg import _fblas:导入错误:DLL 失败”

    我正在导入 from scipy import misc io 但我收到这些错误 Traceback most recent call last File C work asaaki code generateProposals py li
  • 在 ubuntu 中卸载 python 模块

    我必须删除一个名为 django 的 python 模块 一种流行的模块 因为我安装了错误的版本 1 3 py 2 6 中的 beta 如何卸载这个模块 请解释一下 因为我只在 Windows 中使用过 python 而从未在 Ubuntu
  • FastAPI UploadFile 与 Flask 相比慢

    我创建了一个端点 如下所示 app post report upload def create upload files files UploadFile File try with open files filename wb as wf
  • pandas DataFrame 中行的高效成对比较

    我目前正在处理一个较小的数据集 大约 900 万行 不幸的是 大多数条目都是字符串 即使强制类别 框架在内存中也只有几 GB 我想做的是将每一行与其他行进行比较 并对内容进行直接比较 例如 给定 A B C D 0 cat blue old
  • 使用 Popen 打开进程并获取 PID

    我正在开发一个漂亮的小功能 def startProcess name path Starts a process in the background and writes a PID file returns integer pid Ch
  • 哈希 freezeset 与排序元组

    在 Python 中 给定一组可比较的 可散列的元素s 散列是否更好frozenset s or tuple sorted s 这取决于你在做什么 创建一个更快frozenset 比排序tuple but frozenset占用的内存比tu
  • PySpark DataFrame 上分组数据的 Pandas 式转换

    如果我们有一个由一列类别和一列值组成的 Pandas 数据框 我们可以通过执行以下操作来删除每个类别中的平均值 df DemeanedValues df groupby Category Values transform lambda g
  • 数据类和属性装饰器

    我一直在阅读 Python 3 7 的数据类 作为命名元组的替代品 我通常在必须将数据分组到结构中时使用它 我想知道数据类是否与属性装饰器兼容 以便为数据类的数据元素定义 getter 和 setter 函数 如果是这样 是否在某处进行了描
  • 如何在Python中不使用库函数将字符串转换为整数?

    我正在尝试转换 a 546 to a 546 不使用任何库函数 我能想到的 最纯粹 gt gt gt a 546 gt gt gt result 0 gt gt gt for digit in a result 10 for d in 01
  • 阻止 BeautifulSoup 将我的 XML 标签转换为小写

    我正在使用 BeautifulStoneSoup 来解析 XML 文档并更改一些属性 我注意到它会自动将所有 XML 标签转换为小写 例如我的源文件有
  • Scipy 稀疏 CSR 矩阵到 TensorFlow SparseTensor - 小批量梯度下降

    我有一个 Scipy 稀疏 CSR 矩阵 它是根据 SVM Light 格式的稀疏 TF IDF 特征矩阵创建的 特征数量巨大且稀疏 所以我必须使用 SparseTensor 否则速度太慢 例如 特征数量为 5 示例文件如下所示 0 4 1
  • Docker Python 脚本找不到文件

    我已经成功构建了一个 Docker 容器 并将应用程序的文件复制到 Dockerfile 中的容器中 但是 我正在尝试执行引用输入文件 在 Docker 构建期间复制到容器中 的 Python 脚本 我似乎无法弄清楚为什么我的脚本告诉我它无
  • Python 子进程:无法转义引号

    我知道以前曾问过类似的问题 但它们似乎都是通过重新设计参数的传递方式 即使用列表等 来解决的 但是 我这里有一个问题 因为我没有这个选项 有一个特定的命令行程序 我使用的是 Bash shell 我必须向其传递带引号的字符串 它不能不被引用

随机推荐

  • 使用 jQuery 检测首页加载?

    我需要检测 jQuery 中页面的首次加载 以便仅在用户第一次导航到该页面时加载页面时才能执行某些操作 类似于服务器端代码页 ispostbasck 我已经测试了 document ready 每次页面加载时它都会触发 因此这不会提供我需要
  • JOOQ Oracle 数字精度和 Java 数字映射

    谁能告诉我或提供关于 oracle 数字精度和 java 类型之间映射的参考 即数字 x 在什么时候映射到短整型 整型 长型 BigInteger 等 Java 整数类型与 Oracle 并不完美匹配NUMBER类型 本质上 有两种方法可以
  • 为什么选择 Phing/Ant 而不是 Bash 和 Make? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我一直在工作中使用 Phing 它是我到达那里时设置的 并考虑将它用于一些个人项目 我还没有弄清楚的一件事是最大的吸引力是什么 Phing 或
  • Swift - Google 地图更新当前位置的路线

    我目前正在学习 Swift 的 Google Maps API 因此我有几个问题希望你们能回答 碰巧我正在尝试创建一个简单地为用户提供方向的应用程序 就像苹果地图和谷歌地图一样 它只是为用户绘制一条方向路线 我已经成功地完成了这项工作 但我
  • 布尔运算符的差异:& 与 && 和 |与||

    我知道规则 and 但什么是 and 请用例子向我解释这些 这些是按位 AND 和按位 OR 运算符 int a 6 110 int b 4 100 Bitwise AND int c a b 110 100 100 Bitwise OR
  • 提取 pandas 数据框中的嵌套 JSON

    我正在尝试在以下 pandas 数据框中解压嵌套的 JSON id info 0 0 u a u good u b u type1 u a u bad u b u type2 1 1 u a u bad u b u type1 u a u
  • 访问集合中的唯一元素[重复]

    这个问题在这里已经有答案了 我有一个set在Python中 我根据条件一一删除元素 当集合只剩下 1 个元素时 我需要返回该元素 如何从集合中访问该元素 一个简化的例子 S set range 5 for i in range 4 S S
  • CAP定理是否意味着ACID对于分布式数据库是不可能的?

    有NoSQL ACID 分布式 数据库 https stackoverflow com questions 2608103 is there any nosql that is acid compliant 尽管有 CAP 定理 这怎么可能
  • 警告:库类 android.net.http.AndroidHttpClient 扩展或实现程序类 org.apache.http.client.HttpClient

    我在导出 Android 应用程序时从 proguard 收到这些奇怪的错误 我已经编辑了配置文件 但我找不到剩下的错误是什么 我已经添加了外部 Jars 配置了 dontwarn 现在我找不到剩下的问题 2013 11 22 17 13
  • 房间持久性:实体和 Pojo 必须有一个可用的公共构造函数

    我正在尝试通过 Room Persistence 库向我的 Android 应用程序添加数据库 但收到此错误 错误 实体和 Pojo 必须有一个可用的公共构造函数 您可以有一个空构造函数 也可以有一个参数与字段匹配 按名称和类型 的构造函数
  • 方向更改时保留软输入/IME 状态

    我的应用程序中遇到了一个小的用户体验问题 当软键盘打开时从横向更改为纵向 或纵向更改为横向 时 键盘会隐藏 我想要做的是停止键盘在方向改变时隐藏 Edit 我不想强制打开键盘 如果键盘在方向更改之前被隐藏 我希望它保持隐藏状态 我想reta
  • 将一个文件夹中的所有文件移动到另一个文件夹中?

    当我将一个文件从一个位置移动到另一个位置时 rename path filename newpath filename 如何将一个文件夹中的所有文件移动到另一个文件夹中 尝试了这个没有结果 rename path newpath 一个稍微冗
  • 如何从 JavaScript 调用 REST API

    我有一个提供 json 数据的网址 我想从 javascript 访问该 URL 但收到此错误 纯文本文档的字符编码未声明 如果文档包含 US ASCII 范围之外的字符 则在某些浏览器配置中 该文档将呈现为乱码 文件的字符编码需要在传输协
  • 如果满足条件,则将元素与列表中的下一个元素连接

    我正在使用斯坦福自然语言处理将文本分割成句子 但它忽略了收缩 这是我得到的句子的一个例子 List I d like to fix this sentence because it s broken 我的目标是连接缩写词 使结果如下所示 L
  • 如何在sparklyr中按3分钟时间戳聚合数据?

    我在用sparklyr进行一些快速分析 我在使用时间戳时确实遇到一些问题 我有两个不同的数据帧 一个以 1 分钟间隔行 另一个以 3 分钟间隔行 第一个数据集 1 分钟间隔 id timefrom timeto value 10 2017
  • 使用 jQuery 验证在单独的 div 中显示错误消息

    我正在使用 jQuery 验证 我想在 div 中显示错误消息 div class alert alert error 默认显示在表单下方的功能不适用于我的表单设计 验证脚本链接到我有表单的页面 它看起来像 function validat
  • 取消选择变量时,条形图“飞翔”

    我面临着 ggplot2 和plotly 的一些问题 使用 ggplot2 创建条形图并将其传递给函数时ggplotly取消选择变量时 条形图位于半空中 该图的表现与示例不同here https plot ly r bar charts 例
  • 多个 jediepcserver.py 用于多个 virtualenv

    我正在尝试为不同项目的多个 virtualenv 运行多个 jediepcserver py 我的想法是让我在 Emacs 上工作的每个项目都有适当的自动完成功能 例如 我目前正在开发两个项目 一个使用 Django 1 5 另一个使用 D
  • .Net AssemblyName.version 构建与修订

    MSDN 文档指出 版本号由二到四个组成 组件 主要 次要 构建和 修订 主要和次要 需要组件 构建和 修订组件是可选的 但是 构建组件是必需的 如果 修订版组件已定义 全部 定义的分量必须是整数 大于或等于0 版本号的格式如下 如下 显示
  • 从Python API而不是saved_model_cli中提取(或设置)输入/输出TF张量名称信息

    我使用 Keras TF2 5 训练了一个简单的模型并将其保存为已保存模型 tf saved model save my model path to model 如果我通过检查它 saved model cli show dir path