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

向tensorflow冻结图pb添加元数据

向TensorFlow冻结图(Frozen Graph)PB添加元数据是指在TensorFlow模型中添加额外的元数据信息,以便更好地描述和管理模型。元数据可以包括模型的版本号、作者、创建日期、许可证信息等。

添加元数据可以通过以下步骤完成:

  1. 导入必要的库和模块:
代码语言:txt
复制
import tensorflow as tf
from tensorflow.python.framework import graph_io
  1. 加载已经冻结的图:
代码语言:txt
复制
input_graph = tf.GraphDef()
with tf.gfile.GFile('frozen_graph.pb', 'rb') as f:
    input_graph.ParseFromString(f.read())
  1. 创建一个新的图,并将已冻结的图复制到新图中:
代码语言:txt
复制
output_graph = tf.GraphDef()
output_graph.CopyFrom(input_graph)
  1. 添加元数据到新图的node属性中:
代码语言:txt
复制
metadata = {
    'version': '1.0',
    'author': 'Your Name',
    'created_date': '2022-01-01',
    'license': 'MIT License'
}
output_graph.node[0].metadata['metadata'] = tf.compat.as_bytes(str(metadata))
  1. 将新图保存到文件中:
代码语言:txt
复制
output_graph_path = 'frozen_graph_with_metadata.pb'
with tf.gfile.GFile(output_graph_path, 'wb') as f:
    f.write(output_graph.SerializeToString())

在这个过程中,我们使用了tf.GraphDef类来表示图的定义,tf.gfile.GFile用于读取和写入图文件,graph_io模块用于复制图。通过修改新图的node属性,我们成功地向冻结图中添加了元数据。

添加元数据后,可以通过TensorFlow Serving、TensorFlow Lite等工具来加载和使用带有元数据的冻结图。

推荐的腾讯云相关产品:腾讯云AI智能图像处理(https://cloud.tencent.com/product/aiimage)提供了丰富的图像处理能力,可以与TensorFlow模型结合使用,实现更多的应用场景。

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

相关·内容

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

TensorFlow格式之间转换: github文档中,对GraphDef(.pb)、FrozenGraphDef(带有冻结变量的.pb)、SavedModel(.pb - 用于推断服务器端的通用格式...您应该能够像任何.pb文件一样使用它。 我强烈建议使用Tensorboard来检查图表。请参考附录了解如何导入和使用它。 审查.pbtxt,我们看到: ?...冻结 - 这将冻结GraphDef中的检查点变量 freeze_graph --input_graph=/tmp/mnist_graph_def_with_ckpts/graph.pbtxt --input_checkpoint...结果是:/tmp/mnist_graph_def_with_ckpts/frozen_mnist.pb下的冻结。此时,再次检查Tensorboard中的图形是个好主意。...优化冻结 optimize_for_inference工具(安装指南)接受输入和输出名称,并执行另一次传递以去除不必要的图层。

3K41

TensorFlow 到底有几种模型格式?

() 对象调用 saver.save() 生成的,只包含若干 Variables 对象序列化后的数据,不包含结构,所以只给 checkpoint 模型不提供代码是无法重新构建计算的。...GraphDef(*.pb) 这种格式文件包含 protobuf 对象序列化后的数据,包含了计算,可以从中得到所有运算符(operators)的细节,也包含张量(tensors)和 Variables...下面代码实现了利用 *.pb 文件构建计算TensorFlow 一些例程中用到 *.pb 文件作为预训练模型,这和上面 GraphDef 格式稍有不同,属于冻结(Frozen)后的 GraphDef...代码可以参考 tensorflow/python/tools/freeze_graph.py *.pb 为二进制文件,实际上 protobuf 也支持文本格式(*.pbtxt),但包含权值时文本格式会占用大量磁盘空间...SavedModel 目录结构如下: 其中 saved_model.pb(或 saved_model.pbtxt)包含使用 MetaGraphDef protobuf 对象定义的计算;assets

10.1K111

SavedModel格式TensorFlow模型转为frozen graph

tensorflow库中的签名(Signature),是用于定义模型输入、输出的一种机制——其定义了模型接受的输入参数和返回的输出结果的名称、数据类型和形状等信息;这个默认签名为serving_default...()获取具体函数并指定输入张量的形状和数据类型。...再次,通过convert_variables_to_constants_v2()函数,将图中的变量转换为常量,并基于as_graph_def()定义1个冻结。   ...最后,就可以通过tf.io.write_graph()函数,将冻结写入指定的目录中,输出文件名为frozen_graph.pb,as_text = False表示以二进制格式保存这个模型(如果不加这个参数...代码末尾,还有一段注释的部分——如果取消注释,将以文本格式保存冻结,也就是.pbtxt文件。因为我们只要.pb文件就够了,所以就不需要这段代码了。

10010

跨越重重“障碍”,我从 PyTorch 转换为了 TensorFlow Lite

/my_tf_model.pb" # where the representation of tensorflow model will be stored ONNX_PATH = "....这个.pb文件又是什么? 我在网上搜索一番后,才意识到这是tf.Graph的一个实例。现在 剩下要做的就是 把它转换成 TensorFlow Lite。...可是我不太熟悉这些选项,但我已经知道 onnx-tensorflow 工具导出的内容是一个冻结,所以,这三个选项都帮不了我。 我在网上搜索了很久之后,这个家伙 基本上拯救了我。...原来,TensorFlowv1是支持从冻结进行转换的!我决定在剩下的代码中使用v1API。 在运行转换函数时,出现了一个奇怪的问 p 题,它与protobuf库有关。...converter.convert() # Save the model. with open(TFLITE_PATH, 'wb') as f: f.write(tf_lite_model) TF 冻结

1.4K20

系列 | OpenVINO视觉加速库使用二

tensorflow对象检测框架支持的SSD MobileNet v2版本的模型为例,实现从tensorflowpb文件到IR格式的bin与xml文件生成。...02 导出PB文件或者冻结预测 如果不知道如何操作可以看我们公众号以前的文章即可,文章链接如下: Tensorflow如何导出与使用预测 tensorflow模型导出与OpenCV DNN中使用...表示交换R与B通道顺序 上述的运行脚本与参数只能支持tensorflow本身的导出PB文件,对tensorflow对象检测框架中的预训练模型与自定义训练生成的模型无法正确生成IR。...用来替换来自对象检测框架模型网络结构的子配置与匹配文件,必须跟模型一一对应....--input_shape 模型的输入数据,相当于对象检测网络中image_tensor的四维数据 以对象检测网络中SSD MobileNet V2版本为例,执行如下脚本即可转换为IR模型: python

3.4K51

ensorFlow 智能移动项目:6~10

但是对于那些希望以纯文本格式查看所有内容,或者在冻结模型时更喜欢使用带有--in_graph参数的定义文件的人来说,它是在这里生成的。...--out_graph=/tmp/image2text_frozen_transformed_memmapped.pb 下一节将您展示如何在 iOS 应用中使用image2text_frozen_transformed_memmapped.pb...7.3:显示模型的可能输出节点名称 用您的graph.pbtxt文件的路径和最新的模型检查点前缀替换--input_graph和--input_checkpoint值后,在 TensorFlow 根目录中运行以下脚本以获取冻结...我们将您展示如何在 Python 和 TensorFlow 中构建和训练此类模型,以及如何为移动部署准备模型。...\ --output_node_names="Sigmoid_1" \ --input_binary=true 这将创建可用于移动应用的冻结模型gan_mnist.pb

1.7K20

使用OpenCV加载TensorFlow2模型

不过根据官方解释,OpenCV不支持TensorFlow所推荐的模型保存格式 saved_model 。所以在加载模型之前,模型需要首先被冻结。...冻结网络 在之前的文章“TensorFlow如何冻结网络模型”中介绍过了冻结网络的具体含义以及原理。但是在TensorFlow2中网络冻结似乎被弃用了,文中提到的冻结脚本也无法使用。...幸运的是,网络冻结的原理仍然有效,而且OpenCV作者提供了一小段示例样本展示了冻结网络的方法如下: import tensorflow as tf from tensorflow.python.framework.convert_to_constants...', 'wb') as f: f.write(graph_def.SerializeToString()) 冻结TensorFlow2模型的示例代码,作者:Dmitry Kurtaev 在这段代码中...,模型的推演功能被包裹在 tf.function 中,构建了静态

1.7K20

【学术】实践教程:使用神经网络对犬种进行分类

repo地址:https://github.com/stormy-ua/dog-breeds-classification 训练数据集 拥有一个良好的培训数据集是健壮的模型迈出的一大步。...初始模型使用已预定义的模型参数保持冻结。 下载并准备数据 下一个步骤是下载犬种数据集和预先训练的谷歌初始[Inception]模型。...setup.sh脚本还下载并提取谷歌的初始模型,将其表示为冻结TensorFlow。...为了有效地重新利用模型进行推理,将其作为一个具有将参数嵌入到图形本身的冻结TensorFlow图形是很好的。...在这一点上,图形还没有被冻结,因为在训练过程中计算的模型参数仍然处于检查点文件中。 使用TensorFlow freeze_graph函数冻结在前一步中生成的图形。

2K51

TensorFlow就够了,附实用教程

数据类型是双精度浮点数。 这里是神经网络的示意图: 这里是通过TensorBoard获得的详细原理: 该示意图包含一些仅用于训练的辅助节点。之后,我将提供一个干净的、优化后的图片。...训练日志: TensorFlow和相关数据使用以下方法保存到文件中: saver = tf.train.Saver() with tf.Session() as session: session.run...这些文件可以足够大: session.pb 47732 表格和训练数据可以被冻结,并转化成适合在移动设备上运行的单个文件。...为了冻结它,需要将tensorflow / python / tools / freeze_graph.py文件复制到notebook目录中,然后运行以下命令: python freeze_graph.py...8位数据格式),执行: bazel-bin/tensorflow/tools/graph_transforms/transform_graph --in_graph=mydata/frozen_optimized.pb

2.9K81

使用Tensorflow Object Detection API实现对象检测

一:预训练模型介绍 Tensorflow Object Detection API自从发布以来,其提供预训练模型也是不断更新发布,功能越来越强大,对常见的物体几乎都可以做到实时准确的检测,对应用场景相对简单的视频分析与对象检测提供了极大的方便与更多的技术方案选择...tensorflow object detection提供的预训练模型都是基于以下三个数据集训练生成,它们是: COCO数据集 Kitti数据集 Open Images数据集 每个预训练模型都是以tar...文件形式存在,其中包括以下几个部分: 协议graph.pbtxt 检查点(checkpoint)文件(odel.ckpt.data-00000-of-00001, model.ckpt.index,...model.ckpt.meta) 冻结协议包含作为常量的权重数据 一个config的配置文件 基于COCO数据集训练的模型名称、运行速度、mAP指标及输出列表如下: ?...file in tar_file.getmembers(): file_name = os.path.basename(file.name) if 'frozen_inference_graph.pb

90830

谷歌 TensorFlow 物理检测 API,目前最好的物体识别方案?

作者 | Priya Dwivedi 编译 | 聂震坤 用大数据干大事!...了解 API 此 API 经过 COCO 数据库训练。COCO 数据库拥有三十万张包括九十大类的图像集合,一部分类别如下: ?...主要步骤如下: 下载冻结模型(.pb——protobuf)并将其导入内存 使用內建代码来导入标签,分类,可视化效果工具等等 打开一个新的会话并在一个图像上运行模型 这是一个相对来说较为简单的步骤。...但是由于使用的是一个加载到内存的冻结模型,所以这些都可以在没有显卡的计算机上完成。 结果很惊人!只需要一小段代码,就可以准确识别并标记视屏中的人物。 在有些情况下它的功能还有待提升。...参考 Google Tensorflow Object Detection Github:https://github.com/tensorflow/models/tree/master/object_detection

1.5K20

tensorflow:AToolDeveloperGuideToTFModelFIles

翻译开始 大多数用户不需要关心tensorflow在硬盘上存储数据的细节问题的,但是如果你是一个 Tool developer, 那就另当别论了。...#我们将用文本中的数据来填充这个对象 graph_def = tf.GraphDef() if FLAGS.input_binary: with open("graph_def.pb", "rb...当一个属性没有在node中出现时,但是在定义op的时候,它有一个属性的默认值,那么这个默认值将会在创建的时候使用。...所以,这里有一个freeze_graph.py脚本文件,用于将 graph definition和 一组checkpoints 冻结成一个文件。...然后,它去掉GraphDef中与 前过程无关的节点,然后将处理后的GraphDef保存到输出文件中。 部署的时候,用这个玩意感觉爽的很。

1.3K50
领券