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

如何在没有附带ckpt文件的情况下在tensorflow中初始化pb文件的变量?

在没有附带ckpt文件的情况下,在TensorFlow中初始化pb文件的变量可以通过以下步骤实现:

  1. 加载pb文件:使用TensorFlow的tf.io.gfile.GFile函数加载pb文件,并创建一个tf.GraphDef对象来存储图的定义。
代码语言:txt
复制
import tensorflow as tf

pb_path = "path/to/your/model.pb"
graph_def = tf.compat.v1.GraphDef()
with tf.io.gfile.GFile(pb_path, "rb") as f:
    graph_def.ParseFromString(f.read())
  1. 创建空白的图:使用tf.Graph()函数创建一个空白的图。
代码语言:txt
复制
graph = tf.Graph()
  1. 导入图的定义:将加载的pb文件中的图的定义导入到空白的图中。
代码语言:txt
复制
with graph.as_default():
    tf.import_graph_def(graph_def, name="")
  1. 初始化变量:在导入图的定义后,可以使用tf.global_variables_initializer()函数来初始化所有变量。
代码语言:txt
复制
with tf.compat.v1.Session(graph=graph) as sess:
    sess.run(tf.compat.v1.global_variables_initializer())

这样,你就可以在没有附带ckpt文件的情况下,在TensorFlow中成功初始化pb文件的变量。

注意:以上代码示例是基于TensorFlow 2.x版本的,如果你使用的是TensorFlow 1.x版本,需要将代码中的tf.compat.v1替换为tf

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

相关·内容

Tensorflow:模型变量保存

") #保存模型到相应ckpt文件 saver.restore(sess,"/path/model.ckpt") #从相应ckpt文件中恢复模型变量 使用 tf.train.Saver...比如在测试或离线预测时,只需要知道如何从神经网络的输入层经过前向传播计算得到输出层即可,而不需要类似的变量初始化,模型保存等辅助节点的信息。...Tensorflow 提供了 convert_varibales_to_constants 函数,通过这个函数可以将计算图中的变量及其取值通过常量的方式保存,这样整个 Tensorflow 计算图可以统一存放在一个文件中...将变量取值保存为 pb 文件 # pb文件保存方法 import tensorflow as tf from tensorflow.python.framework import graph_util...() # 将需要保存的add节点名称传入参数中,表示将所需的变量转化为常量保存下来。

1.3K30
  • 10分钟详解EMA(滑动平均)并解决EMA下ckpt权重与pb权重表现不一问题

    今天用YunYang的evaluate.py评估模型的时候,意外发现用同样的ckpt权重文件转换而成的pb文件效果不一样,使用ckpt的效果非常差,仔细研究后才发现是滑动平均(EMA)搞的鬼,于是便重新重温了一下...在初始化ExponentialMovingAverage时,需要提供一个衰减率(decay)。这个衰减率将用于控制模型更新的速度,这个第二部分会告诉大家是怎么控制的。...ckpt和pb保存不同的原因 众所周知,pb权重是由ckpt转换而来,他们的表现理论上是一致的,那我们的EMA终究是怎么干扰了我们ckpt的表现呢?...这个要从tensorflow读取使用变量的滑动平均值的方式说起:tensorflow通过tf.train.ExponentialMovingAverage的variables_to_restore()函数获取变量重命名字典...),我们读取的将会是我们本来最后一次准备更新的权重,而不是我们的影子变量,也正是因为这个重命名机制从而导致了我们的ckpt和pb表现不同的关键。

    2.8K20

    实战八·简便方法实现TensorFlow模型参数保存与加载(pb方式)

    [TensorFlow深度学习入门]实战八·简便方法实现TensorFlow模型参数保存与加载(pb方式) 在上篇博文中,我们探索了TensorFlow模型参数保存与加载实现方法采用的是保存ckpt的方式...首先,我会在上篇博文基础上,实现由ckpt文件如何转换为pb文件,再去探索如何在训练时直接保存pb文件,最后是如何利用pb文件复现网络与参数完成应用预测功能。...ckpt文件转换pd文件 ckpt2pd文件代码: import tensorflow as tf pd_dir = "./..../Saver/test1/pb_dir/MyModel.pb 训练保存pd文件 train文件代码 import tensorflow as tf pd_dir = "./..../Saver/test2/pb_dir/MyModel.pb pb文件复现网络与参数 restore文件代码 import tensorflow as tf from saver1 import pd_dir

    2.1K30

    Tensorflow笔记:模型保存、加载和Fine-tune

    其中.meta文件(其实就是pb格式文件)用来保存模型结构,.data和.index文件用来保存模型中的各种变量,而checkpoint文件里面记录了最新的checkpoint文件以及其它checkpoint.../model_ckpt/')) # 加载模型中的变量 # sess.run(tf.global_variables_initializer()) # 重新初始化一下参数 print...() graph_def.ParseFromString(f.read()) # 从pb文件中导入信息 # 从网络中通过tensor的name获取为变量 X, pred =...从pb中获取进来的“变量”就可以直接用。为什么我要给变量两个字打上引号呢?...2.3 saved_model模式加载 前两种加载方法想要获取tensor,要么需要手动搭建网络,要么需要知道tensor的name,如果用模型和训模型的不是同一个人,那在没有源码的情况下,就不方便获取每个

    1.9K41

    从Tensorflow模型文件中解析并显示网络结构图(CKPT模型篇)

    上一篇文章《从Tensorflow模型文件中解析并显示网络结构图(pb模型篇)》中介绍了如何从pb模型文件中提取网络结构图并实现可视化,本文介绍如何从CKPT模型文件中提取网络结构图并实现可视化。...对于第二点,pb模型文件会自动将基础计算组成一个计算节点,但是对于Tensor操作的函数如Slice等函数是无法合并的。...2 自动将CKPT转pb,并提取网络图中节点 如果将CKPT自动转pb模型,那么就可以复用上一篇文章《从Tensorflow模型文件中解析并显示网络结构图(pb模型篇)》的代码。示例代码如下所示。...我们还需要知道mobilenet_v1_1.0_192.ckpt模型对应的输入和输出Tensor对象的名称,官方提供的压缩包文件中并没有告知。一种方法是运行官方代码,把输入Tensor的名称打印出来。...但是运行官方代码本身就需要一定的时间和精力,在在上一篇文章《从Tensorflow模型文件中解析并显示网络结构图(pb模型篇)》的代码实现中已经实现了将原始网络结构对应的字符串写入到ori_network.txt

    6.7K30

    Tensorflow将模型导出为一个文件及接口设置

    有没有办法导出为一个pb文件,然后直接使用呢?答案是肯定的。在文章《Tensorflow加载预训练模型和保存模型》中提到,meta文件保存图结构,weights等参数保存在data文件中。...也就是说,图和参数数据时分开保存的。说的更直白一点,就是meta文件中没有weights等数据。但是,值得注意的是,meta文件会保存常量。...我们只需将data文件中的参数转为meta文件中的常量即可!...但是很多时候,我们拿到的是别人的checkpoint文件,即meta、index、data等文件。这种情况下,需要将data文件里面变量转为常量保存到meta文件中。...那么,将这4个文件导出为一个pb文件方法如下: import tensorflow as tf with tf.Session() as sess: #初始化变量 sess.run(tf.global_variables_initializer

    1.8K20

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

    在TensorFlow格式之间转换: github文档中,对GraphDef(.pb)、FrozenGraphDef(带有冻结变量的.pb)、SavedModel(.pb - 用于推断服务器端的通用格式...)和Checkpoint文件(在训练过程中的序列化变量)有明确的解释。...在我们的例子中,它是model.ckpt-48000 Input binary选项是false,因为我们传递的是.pbtxt文件而不是.pb(在这种情况下,它应该是true)。...TensorFlow格式 - 理解每种工具和操作如何生成不同的文件格式。如果能自动获取SavedGraph并将其转换(缩减中间的一堆步骤)会很棒,但我们还没有做到。...尽管令人兴奋,但并没有太多的例子或文档。如果您希望获得先机,可以深入实际的TensorFlow代码库。

    3.1K41

    Keras神经网络转到Android可用的模型

    网络有一个文件(正常情况) *.h5 它是HDF5格式文件,同时保存了网络结构和网络参数。...Tensorflow 网络的构成 Tensorflow 常见的描述网络结构文件是 ckpt,它有两个文件构成 model.ckpt model.ckpt.meta 新版本的 Tensorflow 的 Saver...会默认使用新格式保存,新格式的文件是这几个 model.ckpt.data-00000-of-00001 model.ckpt.index model.ckpt.meta Tensorflow自从开源之后就经常有改动.../squeezenet_model.ckpt') CKPT freeze 到 PB ckpt的网络结构和权重还是分开的 需要先固化到PB,才能继续转成 tflite。...对于固化的过程需要关注这几个参数 input_meta_graph: meta 文件,也就是节点结构 input_checkpoint: ckpt 文件,保存权重 output_graph: 输出PB

    1.7K20

    tensorflow的模型持久化

    在这段代码中,通过saver.save函数将tensorflow模型保存到了/path/to/model/model.ckpt文件中。tensorflow模型一般会保存在后缀为.ckpt的文件中。...上面这段代码会生成的第一个文件为model.ckpt.meta,它保存了tensorflow计算图的结构。第二个文件为model.ckpt,这个文件中保存了tensorflow程序中每一个变量的取值。...两段代码唯一不同的是,在加载模型的代码中没有运行变量的初始化过程,而是将变量的值通过已经保存的模型加载进来。如果不希望重复定义图上的运算,也可以直接加载已经持久化的图。以下代码给出了一个样例。...use uninitialized value v2因为v2没有加载,所以v2在运行初始化之前是没有值的。...如果没有在saver中特殊指定,那么这些属性都默认为空。在model.ckpt.meta.json文件中,meta_info_def属性里只有stripped_op_list属性是不为空的。

    1.9K30

    TensorFlow学习笔记--自定义图像识别

    .ckpt文件复制到 satellite/pretrained 训练程序 在slim文件夹下启动命令行,输入如下命令开始训练(代码需要在TensorFlow GPU版本上运行): python...注4: 开始训练时,如果训练文件夹(satellite/train_dir)里没有保存的模型,就会自动加载 checkpoint_path 中的预训练模型,然后程序会把初始模型保存在train_dir...中,命名为 model.ckpt-0,0表示第0步。...inf_graph.pb 文件,但是这个文件不包含训练获得的模型参数,需要将cheeckpoint中的模型参数保存进来,方法是使用freeze_graph.py: python freeze_graph.py..._inf_graph.pb 使用的网络结构文件(前一步已经导出) –input_checkpoint slim/satellite/train_dir/model.ckpt-5271 指定载入到网络结构中的

    75810

    TensorFlow 智能移动项目:1~5

    在这种原始方法中,首先将最终迁移的图像初始化为与内容图像合并的白噪声图像。...在了解如何在 iOS 和 Android 应用中使用这些模型之前,重要的一点是,您需要记下在第 5 步中使用的,指定为--in-path值的图像的确切图像宽度和高度参数,并在 iOS 或 Android...在 iOS 中使用快速的神经样式迁移模型 事实证明,在由 TensorFlow 实验性容器构建的 iOS 应用中,使用在步骤 7 中生成的fst_frozen_quantized.pb模型文件没有问题,...创建一个新的assets文件夹,如图 2.13 所示,然后将您训练过的快速神经迁移模型从 iOS 应用中拖动(如果您在上一节中尝试过),或者从文件夹/tf_files中拖动,如“训练快速神经样式迁移模型...tf_op_files.txt文件应该包含所有操作定义文件,如为 TensorFlow 移动部署准备模型,因为它们占用的空间很小。

    4.5K20

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

    注意训练中的量化实际上是伪量化,伪量化是完全量化的第一步,它只是模拟了量化的过程,并没有实现量化,只是在训练过程中添加了伪量化节点,计算过程还是用float32计算。...注意一下这里使用了tensorflow中的变量重用函数,方便的控制在测试阶段不使用Dropout。...将checkpoint模型保存为pb模型的代码如下: # 将存储了伪量化信息的freeze pb文件转换成完全量化的tflite文件,可以看见量化完之后文件内存基本减小到1/4 def convert_to_tflite...# 返回一个初始化所有全局变量的操作(Op)。在你构建完整个模型并在会话中加载模型后,运行这个节点。...,测试其中一个模型的时候我们需要注释掉另外两个,因为我发现在tensorflow-1.13.1中一个使用同一个py文件启动了2个Session的话,第二个Session执行的内容会出问题,当然我使用第一个

    1.7K20

    ensorFlow 智能移动项目:6~10

    注意,您没有指定大型检查点文件 model.ckpt-109587.data-00000-of-00001 的完整文件名。...实际上,正如我们将在下一节中很快看到的那样,如果模型文件的转换版本未转换为 memmapped 格式,则将在较旧的移动设备(如 iPhone 6)上崩溃,在这种情况下,转换是必须的, 有。...请按照此处的步骤查看如何在新的 iOS 应用中同时使用image2text_frozen_transformed.pb和image2text_frozen_transformed_memmapped.pb...,这意味着您的应用的jniLibs文件夹中没有正确的 TensorFlow 本机库(图 7.9)。...默认情况下,从 TensorFlow 1.4 开始, tf_op_files.txt中包含 control_flow_ops.cc 文件,因此您所需要做的就是通过运行tensorflow/contrib

    1.8K20
    领券