打印tensorflow恢复模型中所有变量与操作节点方式

我就废话不多说了,大家还是直接看代码吧!

    #参数恢复
    self.sess=tf.Session()
    saver = tf.train.import_meta_graph(os.path.join(model_fullpath,'model.ckpt-7.meta'))
    module_file = tf.train.latest_checkpoint(model_fullpath)
    saver.restore(self.sess, module_file)
    variable_names = [v.name for v in tf.trainable_variables()]
    variable_names = [v.name for v in tf.global_variables()]
    values = self.sess.run(variable_names)
    i=0
    for k, v in zip(variable_names, values):
      i+=1
      if k.find('encode')!=-1:
        print(f"第 {i} 个variable")
        print("Variable: ", k)
        print("Shape: ", v.shape)
        print(v)
    graph = tf.get_default_graph()
    all_ops = graph.get_operations()
    for el in all_ops:
      print(el.name)

输出结果:

补充知识:TensorFlow:.ckpt文件与.ckpt.meta和.ckpt.index以及.pb文件之间的关系是什么?

再使用 tf.train.Saver() 保存参数通常会生成以下文件

那么这些文件具体是什么呢?

.ckpt文件:是旧版本的输出saver.save(sess),相当于你的.ckpt-data

“checkpoint”:文件仅用于告知某些TF函数,这是最新的检查点文件。

.ckpt-meta:包含元图,即计算图的结构,没有变量的值(基本上你可以在tensorboard / graph中看到)。

.ckpt-data:包含所有变量的值,没有结构。

.ckpt-index:可能是内部需要的某种索引来正确映射前两个文件,它通常不是必需的

你可以只用 .ckpt-meta 和恢复一个模型 .ckpt-data

要在python中恢复模型,您通常会使用元数据和数据文件(但您也可以使用该.pb文件):

saver = tf.train.import_meta_graph(path_to_ckpt_meta) saver.restore(sess, path_to_ckpt_data)

该.pb文件可以保存您的整个图表(元+数据)

要在c ++中加载和使用(但不训练)图形,您通常会使用它来创建freeze_graph,它会.pb从元数据和数据创建文件。

要小心,(至少在以前的TF版本和某些人中)py提供的功能freeze_graph不能正常工作,所以你必须使用脚本版本。

以上这篇打印tensorflow恢复模型中所有变量与操作节点方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • TensorFlow实现打印每一层的输出

    在test.py中可以通过如下代码直接生成带weight的pb文件,也可以通过tf官方的freeze_graph.py将ckpt转为pb文件. constant_graph = graph_util.convert_variables_to_constants(sess, sess.graph_def,['net_loss/inference/encode/conv_output/conv_output']) with tf.gfile.FastGFile('net_model.pb', mod

  • tensorflow从ckpt和从.pb文件读取变量的值方式

    最近在学习tensorflow自带的量化工具的相关知识,其中遇到的一个问题是从tensorflow保存好的ckpt文件或者是保存后的.pb文件(这里的pb是把权重和模型保存在一起的pb文件)读取权重,查看量化后的权重是否变成整形. 因此将自己解决这个问题记录下来,为了下一次遇到时,可以有所参考,也希望给有需要的同学一个可能的参考. (1) 从保存的ckpt读取变量的值(以读取保存的第一个权重为例) from tensorflow.python import pywrap_tensorflow i

  • tensorflow2.0保存和恢复模型3种方法

    方法1:只保存模型的权重和偏置 这种方法不会保存整个网络的结构,只是保存模型的权重和偏置,所以在后期恢复模型之前,必须手动创建和之前模型一模一样的模型,以保证权重和偏置的维度和保存之前的相同. tf.keras.model类中的save_weights方法和load_weights方法,参数解释我就直接搬运官网的内容了. save_weights( filepath, overwrite=True, save_format=None ) Arguments: filepath: String,

  • tensorflow之变量初始化(tf.Variable)使用详解

    默认本系列的的读者已经初步熟悉tensorflow. 我们通过tf.Variable构造一个variable添加进图中,Variable()构造函数需要变量的初始值(是一个任意类型.任意形状的tensor),这个初始值指定variable的类型和形状.通过Variable()构造函数后,此variable的类型和形状固定不能修改了,但值可以用assign方法修改. 如果想修改variable的shape,可以使用一个assign op,令validate_shape=False. 通过Varia

  • 打印tensorflow恢复模型中所有变量与操作节点方式

    我就废话不多说了,大家还是直接看代码吧! #参数恢复 self.sess=tf.Session() saver = tf.train.import_meta_graph(os.path.join(model_fullpath,'model.ckpt-7.meta')) module_file = tf.train.latest_checkpoint(model_fullpath) saver.restore(self.sess, module_file) variable_names = [v.

  • 如何解决tensorflow恢复模型的特定值时出错

    模型的恢复 对于的模型的恢复来说,需要首先恢复模型的整个图文件,之后从图文件中读取相应的节点信息. 存储的模型文件包括四个子文件,如下: 现在假如我想恢复模型中的某个节点信息: 需要注意的是在使用saver.restore恢复权值的时候,参数的设置需要万分注意: # 先加载图文件 saver = tf.train.import_meta_graph("./model/save_model.meta") graph = tf.get_default_graph() # 其中的一个节点 a

  • tensorflow 获取checkpoint中的变量列表实例

    方式1:静态获取,通过直接解析checkpoint文件获取变量名及变量值 通过 reader = tf.train.NewCheckpointReader(model_path) 或者通过: from tensorflow.python import pywrap_tensorflow reader = pywrap_tensorflow.NewCheckpointReader(model_path) 代码: model_path = "./checkpoints/model.ckpt-7500

  • 查看TensorFlow checkpoint文件中的变量名和对应值方法

    实例如下所示: from tensorflow.python import pywrap_tensorflow checkpoint_path = os.path.join(model_dir, "model.ckpt") reader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path) var_to_shape_map = reader.get_variable_to_shape_map() for key in var_

  • TensorFlow 输出checkpoint 中的变量名与变量值方式

    废话不多说,直接看代码吧! import os from tensorflow.python import pywrap_tensorflow model_dir="/xxxxxxxxx/model.ckpt" #checkpoint的文件位置 # Read data from checkpoint file reader = pywrap_tensorflow.NewCheckpointReader(model_dir) var_to_shape_map = reader.get_v

  • vue-cli4使用全局less文件中的变量配置操作

    目录结构如下: 需求: 在Navgation.vue中使用global.less中的变量 vue-cli3的配置方法如下:传送门 vue-cli4的配置方法如下: 安装 style-resources-loader npm i style-resources-loader -D 在 vue.config.js 中加上如下配置,没有则创建该文件,文件名不能改,如下: // vue.config.js const path = require('path') module.exports = { l

  • JavaScript中的变量提升和函数提升

    目录 前言 为什么有变量提升 javascript变量提升和函数提升 总结 前言 在js中对变量进行操作后打印值经常会出现undefined的现象.其实原因是因为js中有一个叫做变量提升的功 举例: var data="lyyyyy"; getData(); function getData(){ //第一次打印 console.log("data值为: ", data); var data="yyyyyyy"; //第二次打印 console.

  • 从训练好的tensorflow模型中打印训练变量实例

    从tensorflow 训练后保存的模型中打印训变量:使用tf.train.NewCheckpointReader() import tensorflow as tf reader = tf.train.NewCheckpointReader('path/alexnet/model-330000') dic = reader.get_variable_to_shape_map() print dic 打印变量 w = reader.get_tensor("fc1/W") print t

  • tensorflow 打印内存中的变量方法

    法一: 循环打印 模板 for (x, y) in zip(tf.global_variables(), sess.run(tf.global_variables())): print '\n', x, y 实例 # coding=utf-8 import tensorflow as tf def func(in_put, layer_name, is_training=True): with tf.variable_scope(layer_name, reuse=tf.AUTO_REUSE):

  • tensorflow模型的save与restore,及checkpoint中读取变量方式

    创建一个NN import tensorflow as tf import numpy as np #fake data x = np.linspace(-1, 1, 100)[:, np.newaxis] #shape(100,1) noise = np.random.normal(0, 0.1, size=x.shape) y = np.power(x, 2) + noise #shape(100,1) + noise tf_x = tf.placeholder(tf.float32, x.

随机推荐