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

 更新时间:2020年05月26日 09:43:46   作者:Takoony  
这篇文章主要介绍了打印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恢复模型中所有变量与操作节点方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python爬取奶茶店数据分析哪家最好喝以及性价比

    Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • Python如何判断Excel单元格的值是否为空

    Python如何判断Excel单元格的值是否为空

    在Python中,你可以使用openpyxl库来处理Excel文件,这篇文章主要介绍了Python判断Excel单元格的值是否为空,需要的朋友可以参考下
    2024-06-06
  • 详解Python中高阶函数(map,filter,reduce,sorted)的使用

    详解Python中高阶函数(map,filter,reduce,sorted)的使用

    高阶函数就是能够把函数当成参数传递的函数就是高阶函数,换句话说如果一个函数的参数是函数,那么这个函数就是一个高阶函数。本文为大家详细讲解了Python中常用的四个高阶函数,感兴趣的可以了解一下
    2022-04-04
  • Python requests timeout的设置

    Python requests timeout的设置

    这篇文章主要介绍了Python requests timeout的设置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 基于pytorch的lstm参数使用详解

    基于pytorch的lstm参数使用详解

    今天小编就为大家分享一篇基于pytorch的lstm参数使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 浅谈pycharm下找不到sqlalchemy的问题

    浅谈pycharm下找不到sqlalchemy的问题

    今天小编就为大家分享一篇浅谈pycharm下找不到sqlalchemy的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python可视化神器pyecharts绘制折线图详情

    Python可视化神器pyecharts绘制折线图详情

    这篇文章主要介绍了Python可视化神器pyecharts绘制折线图详情,折线图和柱状图一样是我们日常可视化最多的一个图例,当然它的优势和适用场景相信大家肯定不陌生,要想快速的得出趋势,抓住趋势二字,就会很快的想到要用折线图来表示了
    2022-07-07
  • 基于python实现音乐播放器代码实例

    基于python实现音乐播放器代码实例

    这篇文章主要介绍了基于python实现音乐播放器代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Python中字符串,列表与字典的常用拼接方法总结

    Python中字符串,列表与字典的常用拼接方法总结

    有时在数据处理时,需要对数据进行拼接处理,比如字符串的拼接、列表的拼接等,本文主要是介绍了字符串、列表、字典常用的拼接方法,希望对大家有所帮助
    2024-02-02
  • 使用matplotlib修改坐标轴,将y轴的间距设置为某一个值

    使用matplotlib修改坐标轴,将y轴的间距设置为某一个值

    这篇文章主要介绍了使用matplotlib修改坐标轴,将y轴的间距设置为某一个值方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02

最新评论