使用tf.train.match_filenames_once()时报错FailedPreconditionError: Attempting to use uninitialized value X
来源:互联网 发布:mac系统qq如何远程 编辑:程序博客网 时间:2024/05/29 19:41
#使用tf.train.match_filenames_once函数获取文件列表
files=tf.train.match_filenames_once("data.tfrecords-*")
#通过tf.train.string_input_producer函数创建输入队列,输入队列中的文件列表为
#tf.train.mach_filenames_once函数获取的文件列表。这里将shuffle参数设为False
#来避免随机打乱读文件的顺序。但一般在解决问题是,会将shuffle参数设置为True
filename_queue=tf.train.string_input_producer(files,shuffle=False)
reader=tf.TFRecordReader()
_,serialized_example=reader.read(filename_queue)
features=tf.parse_single_example(
serialized_example,
features={
'i':tf.FixedLenFeature([],tf.int64),
'j':tf.FixedLenFeature([],tf.int64),
})
#init=(tf.global_variables_initializer(),tf.local_variables_initializer()) #收集全局变量和局部变量
#init=tf.local_variables_initializer() #收集全局变量
#init=tf.local_variables_initializer() #收集局部变量
with tf.Session() as sess:
#虽然在本段程序中没有声明任何变量,但使用tf.train.match_filenames_once函数时
#需要初始化一些变量
#sess.run(tf.local_variables_initializer())
sess.run(tf.global_variables_initializer())
#sess.run(init)
print(sess.run(files))
#声明tf.train.Coordinator类来协同不同线程,并启动线程
coord=tf.train.Coordinator()
threads=tf.train.start_queue_runners(sess=sess,coord=coord)
#多次执行获取数据的操作
for i in range(6):
print(sess.run([features['i'],features['j']]))
coord.request_stop()
coord.join(threads)
运行以后就会报错FailedPreconditionError: Attempting to use uninitialized value matching_filenames_9
解决方法: 因为此例只有一个局部变量,所以把sess.run(tf.global_variables_initializer())换成sess.run(tf.local_variables_initializer())即可
原代码为《Tensorflow:实战Google深度学习框架》中7.3.2节中的代码
变量未初始化,原因global_variables_initiaiizer()函数仅初始化了全局变量,而local_variables_initializer()则仅初始化局部变量,而train.match_filenames_once()返回的文件列表作为临时变量并没有保存到checkpoint,所以并不会作为全局变量被global_variables_initializer()函数初始化,所以sess.run(files)时,files文件实则并没有被初始化,进而导致报错。
参考https://stackoverflow.com/questions/44143139/tensorflow-operation-tf-train-match-filenames-once-not-working#
跟我的问题完美吻合
本质问题实则是global_variables_initializer()和local_variables_initializer()的区别
参考https://stackoverflow.com/questions/40220201/tensorflow-tf-initialize-all-variables-vs-tf-initialize-local-variables
- 使用tf.train.match_filenames_once()时报错FailedPreconditionError: Attempting to use uninitialized value X
- 【Tensorflow】报错:FailedPreconditionError: Attempting to use uninitialized value keep_prob_7
- TensorLow: FailedPreconditionError:Attempting to use uninitialized value Variable
- tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized val
- TensorFlow计算AUC错误:Attempting to use uninitialized value auc/false_positives
- tf.train.match_filenames_once如何验证文件是否正确读取?
- perl: Use of uninitialized value
- Use of uninitialized value $line in chomp
- Memcache SchoonerSockIOPool-attempting to get SockIO from uninitialized pool! 问题
- 使用 tf.gfile.DeleteRecursively 时,报 FailedPreconditionError 错误
- Qt中使用setLayout()函数时报错------Attempting to set QLayout "" on MainWindow "MainWindow",which already has
- 使用PHPExcel 时报错ZipArchive::getFromName(): Invalid or uninitialized Zip object
- memcached 出现 Attempting to get SockIO from uninitialized pool!问题之根源
- ERROR com.schooner.MemCached.SchoonerSockIOPool - attempting to get SockIO from uninitialized pool
- tf.train
- 有关Bitmap使用时报错 Canvas: trying to use a recycled bitmap
- 阿录帮帮忙—memcached整合spring时:“attempting to get SockIO from uninitialized pool!”问题的解决
- Use of uninitialized value in concatenation (.) or string at test.pl line 232
- Hive技术原理解析
- 【Scikit-Learn 中文文档 】安装 scikit-learn | ApacheCN
- 线性表的插入和删除
- python 集合
- R语言如何做多元线性回归?以例子说明?
- 使用tf.train.match_filenames_once()时报错FailedPreconditionError: Attempting to use uninitialized value X
- Python之面向对象编程:封装、继承、多态
- HTML && CSS 学习笔记(3)CSS(关键词:CSS/基础语法)
- idea spring boot项目调试不用每次重启
- method_Nesterov's Accelerated Gradient Descent
- ELK第二篇:Elasticsearch的CRUD常用REST接口
- HDOJ 2148 Score(水题)
- 想要提升移动网页的加载速度?你可以Get这些技能
- Qt小程序(二)-Qt Designer使用简单介绍