如何解决tensorflow恢复模型的特定值时出错
模型的恢复
对于的模型的恢复来说,需要首先恢复模型的整个图文件,之后从图文件中读取相应的节点信息。
存储的模型文件包括四个子文件,如下:
现在假如我想恢复模型中的某个节点信息:
需要注意的是在使用saver.restore恢复权值的时候,参数的设置需要万分注意:
# 先加载图文件 saver = tf.train.import_meta_graph("./model/save_model.meta") graph = tf.get_default_graph() # 其中的一个节点 a_val = graph.get_tensor_by_name("var/a_val:0") # 这里是我的节点名称,这都不是重点 with tf.Session() as sess: # 加载权值 saver.restore(sess, "./model/save_model") # 这里才是重点,注意使用的是save_model,而不是save_model.data-00000-of-00001,不要带一串后缀,如果使用后者的话,会报错!!!!! print(sess.run(a_val))
以上这篇如何解决tensorflow恢复模型的特定值时出错就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
tensorflow2.0保存和恢复模型3种方法
方法1:只保存模型的权重和偏置 这种方法不会保存整个网络的结构,只是保存模型的权重和偏置,所以在后期恢复模型之前,必须手动创建和之前模型一模一样的模型,以保证权重和偏置的维度和保存之前的相同. tf.keras.model类中的save_weights方法和load_weights方法,参数解释我就直接搬运官网的内容了. save_weights( filepath, overwrite=True, save_format=None ) Arguments: filepath: String,
-
tensorflow 保存模型和取出中间权重例子
下面代码的功能是先训练一个简单的模型,然后保存模型,同时保存到一个pb文件当中,后续可以从pd文件里读取权重值. import tensorflow as tf import numpy as np import os import h5py import pickle from tensorflow.python.framework import graph_util from tensorflow.python.platform import gfile #设置使用指定GPU os.envi
-
TensorFlow 模型载入方法汇总(小结)
一.TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类,.save(sess, ckpt文件目录)方法 参数名称 功能说明 默认值 var_list Saver中存储变量集合 全局变量集合 reshape 加载时是否恢复变量形状 True sharded 是否将变量轮循放在所有设备上 True max_to_keep 保留最近检查点个数 5 restore_sequentially 是否按顺序恢复变量,模型较大时顺序恢复内存消耗小 True var_list是字典
-
tensorflow模型继续训练 fineturn实例
解决tensoflow如何在已训练模型上继续训练fineturn的问题. 训练代码 任务描述: x = 3.0, y = 100.0, 运算公式 x×W+b = y,求 W和b的最优解. # -*- coding: utf-8 -*-) import tensorflow as tf # 声明占位变量x.y x = tf.placeholder("float", shape=[None, 1]) y = tf.placeholder("float", [None,
-
Tensorflow 实现修改张量特定元素的值方法
最近在做一个摘要生成的项目,过程中遇到了很多小问题,从网上查阅了许多别人解决不同问题的方法,自己也在旁边开了个jupyter notebook搞些小实验,这里总结一下遇到的一些问题. Tensorflow用起来不是很顺手,很大原因在于tensor这个玩意儿,并不像数组或者列表那么的直观,直接print的话只能看到 Tensor(-) 这样的提示.比如下面这个问题,我们想要修改张量特定位置上的某个数值,操作起来就相对麻烦一些.和array一样,张量也是可以分段读取的,比如 tensor[1:10]
-
如何解决tensorflow恢复模型的特定值时出错
模型的恢复 对于的模型的恢复来说,需要首先恢复模型的整个图文件,之后从图文件中读取相应的节点信息. 存储的模型文件包括四个子文件,如下: 现在假如我想恢复模型中的某个节点信息: 需要注意的是在使用saver.restore恢复权值的时候,参数的设置需要万分注意: # 先加载图文件 saver = tf.train.import_meta_graph("./model/save_model.meta") graph = tf.get_default_graph() # 其中的一个节点 a
-
解决tensorflow测试模型时NotFoundError错误的问题
错误代码如下: NotFoundError (see above for traceback): Unsuccessful TensorSliceReader constructor: Failed to find any matching files for xxx -- 经查资料分析,错误原因可能出在加载模型时的路径问题.我采用的加载模型方法: with tf.Session() as sess: print("Reading checkpoints...") ckpt = tf.
-
打印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模型恢复报错的问题
错误信息 Attempting to use uninitialized value input_producer/input_producer/limit_epochs/epochs 今天在模型恢复的时候出现上图报错信息,最后发现是由于调用tf.train.slice_input_producer方法产生的错误信息.它本身认为是一个tensor 修改方法: 获取batch后,在sess中先初始化即可 sess.run(tf.global_variables_initializer()) ses
-
解决tensorflow模型参数保存和加载的问题
终于找到bug原因!记一下:还是不熟悉平台的原因造成的! Q:为什么会出现两个模型对象在同一个文件中一起运行,当直接读取他们分开运行时训练出来的模型会出错,而且总是有一个正确,一个读取错误? 而 直接在同一个文件又训练又重新加载模型预测不出错,而且更诡异的是此时用分文件里的对象加载模型不会出错? model.py,里面含有 ModelV 和 ModelP,另外还有 modelP.py 和 modelV.py 分别只含有 ModelP 和 ModeV 这两个对象,先使用 modelP.py 和 m
-
TensorFlow加载模型时出错的解决方式
当发现目录时出错如下: \windows\tensorflow\core\framework\op_kernel.cc:993] Not found: Unsuccessful TensorSliceReader constructor: Failed to find any matching files for params_cifar.ckpt 在Windows下要把目录写对才可以. 比如 default='tmp' 要写成这样 default='./tmp' 这样TF就找到相应的目录了.
-
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
一.保存: graph_util.convert_variables_to_constants 可以把当前session的计算图串行化成一个字节流(二进制),这个函数包含三个参数:参数1:当前活动的session,它含有各变量 参数2:GraphDef 对象,它描述了计算网络 参数3:Graph图中需要输出的节点的名称的列表 返回值:精简版的GraphDef 对象,包含了原始输入GraphDef和session的网络和变量信息,它的成员函数SerializeToString()可以把这些信息串行
-
将TensorFlow的模型网络导出为单个文件的方法
有时候,我们需要将TensorFlow的模型导出为单个文件(同时包含模型架构定义与权重),方便在其他地方使用(如在c++中部署网络).利用tf.train.write_graph()默认情况下只导出了网络的定义(没有权重),而利用tf.train.Saver().save()导出的文件graph_def与权重是分离的,因此需要采用别的方法. 我们知道,graph_def文件中没有包含网络中的Variable值(通常情况存储了权重),但是却包含了constant值,所以如果我们能把Variable
-
tensorflow 恢复指定层与不同层指定不同学习率的方法
如下所示: #tensorflow 中从ckpt文件中恢复指定的层或将指定的层不进行恢复: #tensorflow 中不同的layer指定不同的学习率 with tf.Graph().as_default(): #存放的是需要恢复的层参数 variables_to_restore = [] #存放的是需要训练的层参数名,这里是没恢复的需要进行重新训练,实际上恢复了的参数也可以训练 variables_to_train = [] for var in slim.get_model_variable
-
解决tensorflow训练时内存持续增加并占满的问题
记录一次小白的tensorflow学习过程,也为有同样困扰的小白留下点经验. 先说我出错和解决的过程.在做风格迁移实验时,使用预加载权重的VGG19网络正向提取中间层结果,结果因为代码不当,在遍历图片提取时内存持续增长,导致提取几十个图片的特征内存就满了. 原因是在对每一张图片正向传播结束后,都会在留下中间信息.具体地说是在我将正向传播的代码与模型的代码分离了,在每次遍历图片时都会正向传播,在tensorflow中新增加了很多的计算节点(如tf.matmul等等),导致内存中遗留了大量的过期信息
随机推荐
- Python实现输出程序执行进度百分比的方法
- 浅析Linux打包压缩解压缩命令大全(收藏)
- SQLite教程(六):表达式详解
- javascript 强制弹出窗口代码-跨拦截
- js实现登录与注册界面
- tomcat自定义Web部署文件中docBase和workDir的区别介绍
- ES6中class类用法实例浅析
- 高性能JavaScript 重排与重绘(2)
- WebService出现"因 URL 意外地以 结束,请求格式无法识别"的解决方法
- 让你同时上传 1000 个文件 (二)
- JavaScript6 let 新语法优势介绍
- 比较不错的打印效果 css
- 详解java重载与覆写的区别
- JQuery性能优化的几点建议
- 基于JQuery实现图片轮播效果(焦点图)
- JavaScript操作select元素和option的实例代码
- JS实现网页每隔3秒弹出一次对话框的方法
- hadoop client与datanode的通信协议分析
- ubuntu 12.10 上 android 编译环境搭建的深入解析
- Android编程实现的身份证、车牌号正则验证工具类实例