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

修改tensorflow保存的模型pb文件,以便使用自定义操作进行推断

,可以通过以下步骤实现:

  1. 加载模型:使用tensorflow的tf.saved_model.loader.load函数加载pb文件,并创建一个默认的计算图。
  2. 加载模型:使用tensorflow的tf.saved_model.loader.load函数加载pb文件,并创建一个默认的计算图。
  3. 获取输入和输出节点:通过查看模型的计算图,确定输入和输出节点的名称。
  4. 获取输入和输出节点:通过查看模型的计算图,确定输入和输出节点的名称。
  5. 添加自定义操作:在计算图中添加自定义操作节点,并将其连接到需要修改的节点上。
  6. 添加自定义操作:在计算图中添加自定义操作节点,并将其连接到需要修改的节点上。
  7. 重新保存模型:创建一个新的保存器,并将修改后的计算图保存为新的pb文件。
  8. 重新保存模型:创建一个新的保存器,并将修改后的计算图保存为新的pb文件。

通过以上步骤,你可以成功修改tensorflow保存的模型pb文件,以便使用自定义操作进行推断。请注意,以上代码仅为示例,实际操作中需要根据具体情况进行调整。

推荐的腾讯云相关产品:腾讯云AI智能机器学习平台(https://cloud.tencent.com/product/tia)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何将自己开发模型转换为TensorFlow Lite可用模型

我们应该对此训练脚本进行一些修改以便稍后进行转换。 第一个问题是“什么是输入和输出层?” class Model(tf.keras.Model): ......重要是要注意GraphDef、Saved Model、FrozenGraph和Optimized Graphs都以protobuf格式保存(.pb) 训练模型 - 这将生成3个代表网络结构文件。...在更复杂模型中,您可能会遇到TFLite不支持操作,因此了解它们是哪些操作并查看是否可以使用graph_transform工具进行操作,也是很好。 为输入和输出层命名。...代码始终是真理最佳来源:) 下一步 从培训脚本开始,我们能够检查和修改TensorFlow图表,以便用于移动设备。...附录 使用Tensorboard 我创建了一个修改版本import_pb_to_tensorboard.py,以支持导入图形定义(.pb)、图形定义文本(.pbtxt)和保存模型(.pb文件类型。

2.9K41

面向机器智能TensorFlow实践:产品环境中模型部署

模型数据流图应当与其训练版本有所区分,因为它必须从占位符接收输入,并对其进行单步推断以计算输出。...你可能还记得,在前面的章节中,我们周期性地保存模型训练检查点文件。那些文件中包含了当时学习到参数,因此当出现异常时,训练进展不会受到影响。...训练结束时,最后一次保存训练检查点文件中将包含最后更新模型参数,这正是我们希望在产品中使用版本。...为了使用像数据库记录这样结构化输入,需要修改ClassificationRequest消息。...接下来将基于BaseHTTPServer搭建一个简单Python Web服务器,BaseHTTPServer将处理上载图像文件,并将其发送给推断服务进行处理,再将推断结果以纯文本形式返回。

2.1K60

tensorflow使用freeze_graph.py将ckpt转为pb文件方法

tensorflow在训练过程中,通常不会将权重数据保存格式文件里(这里我理解是模型文件),反而是分开保存在一个叫checkpoint检查点文件里,当初始化时,再通过模型文件变量Op节点来从checkoupoint...这种模型和权重数据分开保存情况,使得发布产品时不是那么方便,所以便有了freeze_graph.py脚本文件用来将这两文件整合合并成一个文件。 freeze_graph.py是怎么做呢?...首行它先加载模型文件,再从checkpoint文件读取权重数据初始化到模型权重变量,再将权重变量转换成权重 常量 (因为 常量 能随模型一起保存在同一个文件里),然后再通过指定输出节点将没用于输出推理...保存模型和权限时,Saver也可以自身序列化保存以便在加载时应用合适版本。主要用于版本不兼容时使用。可以为空,为空时用当前版本Saver。...到此这篇关于tensorflow使用freeze_graph.py将ckpt转为pb文件方法文章就介绍到这了,更多相关tensorflow ckpt转为pb文件内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持

2K10

深度学习算法优化系列六 | 使用TensorFlow-Lite对LeNet进行训练时量化

然后训练得出.pb文件,放到指令TFLiteConverter里去实现第二步完整量化,最后生成tflite模型,实现int8计算。.../checkpoint/variable.ckpt-100000" MAX_ITER = 100000 构建我们训练网络,这里使用LeNet,想使用其他网络或者自己网络相应修改即可。...接下来我们需要将checkpoint模型文件转换成freeze pb文件,当然保存为saved_model模型也是可以,因为昨天介绍过了保存为saved_model然后转换为tflite模型,所以今天介绍这种新也是更加常用转换方式...将checkpoint模型保存pb模型代码如下: # 将存储了伪量化信息freeze pb文件转换成完全量化tflite文件,可以看见量化完之后文件内存基本减小到1/4 def convert_to_tflite...,测试其中一个模型时候我们需要注释掉另外两个,因为我发现在tensorflow-1.13.1中一个使用同一个py文件启动了2个Session的话,第二个Session执行内容会出问题,当然我使用第一个

1.6K20

深度学习算法优化系列五 | 使用TensorFlow-Lite对LeNet进行训练后量化

今天主要是利用tflite来跑一下这个量化算法,量化一个最简单LeNet-5模型来说明一下量化有效性。tflite全称为TensorFlow Lite,是一种用于设备端推断开源深度学习框架。...因为将tensorflow模型转换为tflite模型有多种方法例如将tensorflow模型checkpoint模型固化为pb模型然后使用toco工具转换为tflite模型,但这个过程稍显麻烦。...所以这里我选择使用savedModel来保存模型,这个模型可以直接转换为tflite,在转换工程中调用相关代码进行量化。训练完成后会在checkpoint文件夹下生成这4个文件。 ?...并同时生成pb_model文件夹,即用SavedModel保存模型,如下所示: ?...并执行量化操作,这样模型大小被压缩到了之前1/4左右。

1.5K10

如何查看Tensorflow SavedModel格式模型信息

在《Tensorflow SavedModel模型保存与加载》一文中,我们谈到SavedModel格式优点是与语言无关、容易部署和加载。...查看模型Signature签名 这里签名,并非是为了保证模型不被修改那种电子签名。我理解是类似于编程语言中模块输入输出信息,比如函数名,输入参数类型,输出参数类型等等。...我们以《Tensorflow SavedModel模型保存与加载》里模型代码为例,从语句: signature = predict_signature_def(inputs={'myInput':...Tensorflow提供了一个工具,如果你下载了Tensorflow源码,可以找到这样一个文件,....小结 按照前面两种方法,我们可以对Tensorflow SavedModel格式模型有比较全面的了解,即使模型训练者并没有给出文档。有了这些模型信息,相信你写出使用模型进行推断更加容易。

2.6K10

TensorFlow 智能移动项目:1~5

现在,我们准备讨论如何进一步修改重新训练模型以便可以在移动设备上部署和运行它。...重新训练模型文件dog_retrained.pb大小太大,大约 80MB,在部署到移动设备之前,应该经过两个步骤进行优化: 去除未使用节点:删除模型中仅在训练期间使用但在推理期间不需要节点。...,最后会有一行像 FLOPS 估计值:11.42B,这意味着它将使用基于 Inception v3 重新训练模型约 11B FLOPS(浮点运算)进行推断。...在本章中,我们将不提供用于对象检测 Android 示例应用,因为 TensorFlow 源代码已经附带了一个很好示例,可以使用 TensorFlow 对象检测预训练模型以及 YOLO 模型进行操作...在本节和下一节中,我们将通过重组在许多地方记录重要细节并添加更多示例和代码说明来简化官方文档,并提供有关以下内容两个分步教程: 如何设置 API 并使用其预训练模型进行现成推断 如何使用 API​​

4.4K20

浅谈tensorflow模型保存pb各种姿势

一,直接保存pb 1, 首先我们当然可以直接在tensorflow训练中直接保存pb为格式,保存pb好处就是使用场景是实现创建模型使用模型解耦,使得创建模型使用模型解耦,使得前向推导inference...session,模型 tag,模型保存路径即可,使用起来更加简单 这样和之前导入pb模型一样,也是要知道tensorname,那么如何在不知道tensor name情况下使用呢,给add_meta_graph_and_variables...二,从ckpt进行加载 使用tf.train.saver()保持模型时候会产生多个文件,会把计算图结构和图上参数取值分成了不同文件存储,这种方法是在TensorFlow中最常用保存方式: import...checkpoint是检查点文件文件保存了一个目录下所有的模型文件列表 model.ckpt.meta文件保存Tensorflow计算图结果,可以理解为神经网络网络结构,该文件可以被tf.train.import_meta_graph...保存模型和权限时,Saver也可以自身序列化保存以便在加载时应用合适版本。主要用于版本不兼容时使用。可以为空,为空时用当前版本Saver。

4.3K20

ensorFlow 智能移动项目:6~10

之后,我们展示了有关如何使用模型构建 iOS 和 Android 应用以及如何使用模型 LSTM RNN 组件进行序列推断详细教程。...iOS 中模型加载和推断错误 首次为 Android 构建自定义 TensorFlow 本机库,以修复 Android 中模型加载和预测错误 查看有关如何使用预期格式输入来输入 TensorFlow...但是在执行此操作之前,我们首先来看一下如何在 Python 中使用模型进行推断,例如上一章中run_inference.py脚本。...基本了解如何使用Estimator高级 API 构建模型进行预测后,我们现在就可以冻结该模型以便可以在移动设备上使用模型,这需要我们首先弄清楚输出节点名称应该是什么。...,并保存了新检查点文件,我们将冻结这些文件以生成在移动设备上使用模型文件

1.6K20

Tensorflow SavedModel模型保存与加载

这两天搜索了不少关于Tensorflow模型保存与加载资料,发现很多资料都是关于checkpoints模型格式,而最新SavedModel模型格式则资料较少,为此总结一下TensorFlow如何保存...saved_model.pb 保存 为了简单起见,我们使用一个非常简单手写识别代码作为示例,代码如下: from tensorflow.examples.tutorials.mnist import...要保存模型,我们还需要对代码作一点小小改动。 添加命名 在输入和输出Ops中添加名称,这样我们在加载时可以方便按名称引用操作。...,第三个参数是模型保存文件夹。...调用load函数后,不仅加载了计算图,还加载了训练中习得变量值,有了这两者,我们就可以调用其进行推断新给测试数据。 小结 将过程捋顺了之后,你会发觉保存和加载SavedModel其实很简单。

5.3K30

系列 | OpenVINO视觉加速库使用

,方便推断引擎更快加载与执行这些模型。...以tensorflow对象检测框架支持SSD MobileNet v2版本模型为例,实现从tensorflowpb文件到IR格式bin与xml文件生成。...02 导出PB文件或者冻结预测图 如果不知道如何操作可以看我们公众号以前文章即可,文章链接如下: Tensorflow如何导出与使用预测图 tensorflow模型导出与OpenCV DNN中使用...03 使用模型优化器生成脚本生成IR文件 xml文件-描述网络拓扑结构 bin文件-包含权重参数二进制文件 打开cmd命令行,首先到openvino安装好模型优化器目录下 <INSTALL_DIR...表示交换R与B通道顺序 上述运行脚本与参数只能支持tensorflow本身导出PB文件,对tensorflow对象检测框架中预训练模型自定义训练生成模型无法正确生成IR。

3.4K51

【干货】使用TensorFlow官方Java API调用TensorFlow模型(附代码)

【导读】随着TensorFlow普及,越来越多行业希望将Github中大量已有的TensorFlow代码和模型集成到自己业务系统中,如何在常见编程语言(Java、NodeJS等)中使用TensorFlow...大致有两种方法: 直接使用TensorFlow官方API调用训练好pb模型: https://www.tensorflow.org/api_docs/java/reference/org/tensorflow...虽然使用TensorFlow官方Java API可以直接对接训练好pb模型,但在实际使用中,依然存在着与跨语种对接相关繁琐代码。...在代码最后,调用tf.graph_util.convert_variables_to_constants 将图进行转换,最后将图保存模型文件(pb)。...中调用TensorFlow图(pb模型) ---- ---- 模型执行与Python类似,依然是导入图,建立Session,指定输入(feed)和输出(fetch)。

13.4K41

教程 | 如何用TensorFlow在安卓设备上实现深度学习推断

有几种方法可以实现这些要求,如量化、权重剪枝或将大模型提炼成小模型。 在这个项目中,我使用TensorFlow量化工具来进行模型压缩。...目前我只使用权重量化来减小模型大小,因为根据 Mac 上测试结果,完整 8 位转换没有提供额外好处,比如缩短推断时间。...对模型进行权重量化: 1. 将模型写入协议缓冲区文件。 2....推断时间在两个平台上都略有增加,而不是减少,因为权重量化有助于缩小文件大小,但不太能优化推断时间或耗电情况。 ? 表 1. 权重量化前后推断时间。...提高语音识别性能:添加拼写校正语言模型和噪声下采样模型,以降低周围噪声影响。 改善推断时间和耗电情况:用 NEON 或其他架构进行低层次优化,用 gemmlowp 进行低精度矩阵计算。

1.8K50

在物联网中应用机器学习:使用 Android Things 与 TensorFlow

创建一个目录(/tf-data),该目录将保存我们在项目中需要用到所有文件。 3....最后,在你文件夹 /tf-data 中应有两个文件: retrained_graph.pb retrained_labels.txt 第一个文件包含我们模型,这是 TensorFlow 训练过程结果...为此,我们可以重用 GitHub 上名为 TensorFlow 图像分类器示例示例项目。在开始之前,先克隆 GitHub 仓库,以便您可以修改源代码。...该 Android Things 应用与原来应用有所不同,在于: 它不使用按钮来启动相机捕捉图像 它使用不同模型使用一个闪烁 LED 进行通知,摄像机在 LED 停止闪烁后拍摄照片 它在 TensorFlow...最后,是时候使用在刚开始时创建模型了。拷贝 assets 文件夹下 opt_graph.pb 与 reatrained_labels.txt 文件,并替换现有文件

3.3K171

重磅实战:如何用TensorFlow在安卓设备上实现深度学习,附Demo和源码

有几种方法可以实现这些要求,如量化、权重剪枝或将大模型提炼成小模型。 在这个项目中,我使用TensorFlow量化工具来进行模型压缩。...目前我只使用权重量化来减小模型大小,因为根据 Mac 上测试结果,完整 8 位转换没有提供额外好处,比如缩短推断时间。...对模型进行权重量化: 1. 将模型写入协议缓冲区文件。 2....推断时间在两个平台上都略有增加,而不是减少,因为权重量化有助于缩小文件大小,但不太能优化推断时间或耗电情况。 ? 表 1. 权重量化前后推断时间。...提高语音识别性能:添加拼写校正语言模型和噪声下采样模型,以降低周围噪声影响。 改善推断时间和耗电情况:用 NEON 或其他架构进行低层次优化,用 gemmlowp 进行低精度矩阵计算。

2.2K30

tensorflow:AToolDeveloperGuideToTFModelFIles

例如,如果你想分析模型(models),或者想在tensorflow或者其它格式之间进行来回转换。...这篇指南通过试着去解释一些 如何处理 保存模型数据文件细节,使得开发者们做一些格式装换工具更加简单。...如果看到一个独立 用于表示模型(model)Tensorflow文件,那么它很可能是 由protobuf code 保存序列化GraphDef对象。...在训练过程中,权值通常不保存在 file format 中, 我觉着对这句话更精确解释是:在训练过程中保存模型时候,是将 权值保存在 ckpt文件,回想一下 Saver, 在训练过程中,权值还是保存在内存中...希望这个纲要能让你更好地了解TensorFlow模型文件中正在发生事情,如果你需要对它们进行操作的话,将会对你有所帮助。

1.3K50

资源 | 微软开源MMdnn:实现多个框架之间模型转换

其主要特征包括: 模型文件转换器,转换 DNN 模型使之适合不同框架; 模型代码块生成器,生成适合不同框架训练或推断代码块; 模型可视化,针对不同框架可视化 DNN 网络架构和参数; 模型兼容性测试(...业界和学界存在大量现有框架,适合开发者和研究者来设计模型,每个框架具备自己网络结构定义和模型保存格式。...框架之间差距阻碍了模型交互操作。 ? 我们提供一个模型转换器,帮助开发者通过中间表征格式转换模型,以适合不同框架。.../),提交自己 IR json 文件进行模型可视化。...为了运行下面的命令行,你需要使用喜欢包管理器安装 requests、Keras、TensorFlow使用 Keras inception_v3 模型作为示例。 1.

1.5K60

Spark Love TensorFlow

模型调试成功 一 准备 protobuf 模型文件 我们使用 tf.keras 训练一个简单线性回归模型,并保存成 protobuf 文件。...pb格式文件 export_path = "....模型 下面我们通过广播机制将 Driver 端加载 TensorFlow 模型传递到各个 executor 上,并在 executor 上分布式地调用模型进行推断。...模型 除了可以在 Spark RDD 数据上调用 TensorFlow 模型进行分布式推断,我们也可以在 DataFrame 数据上调用 TensorFlow 模型进行分布式推断。...在本例基础上稍作修改则可以用 Spark 调用训练好各种复杂神经网络模型进行分布式模型推断。但实际上 TensorFlow 并不仅仅适合实现神经网络,其底层计算图语言可以表达各种数值计算过程。

87331

一个应用于物体识别的迁移学习工具链

迁移学习指的是,通过对预训练模型参数进行微调,将训练好模型应用到相似或者只有细微差异不同任务中。通过这个方法,我们可以基于一些性能顶尖深度学习模型得到别的高性能模型。...model zoo,基于COCO dataset训练 TensorFlow Object Detection API:应用于迁移学习和推断 一台win10电脑,配备IntelGPU 每一个单独步骤沿一下叙述展开...我们主要致力于给大家展现一个可以应用于其他类似场景迁移学习工具链,从如何构建一个自定义数据集开始,最终得到一个微调完成模型。...有几种工具可以帮助你减化这个痛苦操作:接下来几步简单地描述了如何使用labelbox, 它是一个基于云端标注工具,且操作界面十分简洁。...生成推理图 首先执行下面的1~3操作,生成.ckpt文件和frozen_inference_graph.pb文件将用于步骤4、检验推理图和5、推理和评估模型操作: 将export_inference_graph.py

59820
领券