栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

训练后用占位符交换TensorFlow数据集输入管道

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

训练后用占位符交换TensorFlow数据集输入管道

由于您已经在检查点中保存了经过训练的图,因此 从理论上讲
,最简单的解决方案是通过导出推理图

optimize_for_inference

该工具既适用于已经冻结的图,也适用于您仍然定义了变量的图(根据您的情况)。假设您选择冻结图方式,第一步是通过以下方式将图的变量转换为常量:

python freeze_graph.py --input_graph=temp/path/graph.pbtxt --input_checkpoint=temp/path/your_model_name.ckpt --output_graph=frozen_model.pb --output_node_names=name_of_the_output_tensor_you_want_to_use

这将生成一个名为的新二进制文件

frozen_model.pb
,该文件的
Variable
操作已替换为
Const
ops,并带有从检查点文件加载的值。

然后,您需要使用以下命令生成推理图:

python optimize_for_inference.py --input=frozen_model.pb --output=inference.pb --frozen_graph=True --input_names=IteratorGetNext--output_names=name_of_the_output_tensor_you_want_to_use

这将用

IteratorGetNext
浮动占位符替换节点。您可能想要选择另一个节点,在这种情况下,只需更改名称即可。您还可以通过该
--placeholder_type_enum
选项更改生成的占位符的类型。在这种情况下,您需要提供一个与
DataType
enum中所需的数据类型匹配的整数值。

注意:
我之所以说“理论上”,是因为实际上我从测试中检查了生成的初始图,我似乎发现其中仍然存在一些奇怪的操作,这些操作实际上并不是推理所必需的。您可能需要通过nvidia的Graph
Surgeon或TF的图形转换工具进一步处理图形



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626274.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号