problem
Traceback (most recent call last): File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1356, in _do_call return fn(*args) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1341, in _run_fn options, feed_dict, fetch_list, target_list, run_metadata) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1429, in _call_tf_sessionrun run_metadata) tensorflow.python.framework.errors_impl.OutOfRangeError: RandomShuffleQueue '_0_shuffle_batch/random_shuffle_queue' is closed and has insufficient elements (requested 10, current size 0) [[{{node shuffle_batch}}]] During handling of the above exception, another exception occurred: Traceback (most recent call last): File "test_TFRecord.py", line 46, in <module> print(sess.run(label_batch)) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 950, in run run_metadata_ptr) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1173, in _run feed_dict_tensor, options, run_metadata) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1350, in _do_run run_metadata) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1370, in _do_call raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.OutOfRangeError: RandomShuffleQueue '_0_shuffle_batch/random_shuffle_queue' is closed and has insufficient elements (requested 10, current size 0) [[node shuffle_batch (defined at test_TFRecord.py:34) ]] Original stack trace for 'shuffle_batch': File "test_TFRecord.py", line 34, in <module> num_threads=7) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 324, in new_func return func(*args, **kwargs) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/training/input.py", line 1348, in shuffle_batch name=name) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/training/input.py", line 875, in _shuffle_batch dequeued = queue.dequeue_many(batch_size, name=name) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/ops/data_flow_ops.py", line 488, in dequeue_many self._queue_ref, n=n, component_types=self._dtypes, name=name) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/ops/gen_data_flow_ops.py", line 3862, in queue_dequeue_many_v2 timeout_ms=timeout_ms, name=name) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper op_def=op_def) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func return func(*args, **kwargs) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 3616, in create_op op_def=op_def) File "/home/xxx/anaconda3/envs/mtcnn_tfgpu/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 2005, in __init__ self._traceback = tf_stack.extract_stack()
code
# -*- coding: utf-8 -*- """ @author: friedhelm """ import tensorflow as tf img_size = 12 filename_queue = tf.train.string_input_producer(["/home/xxx/workspace/test_code/github_test/MTCNN-tensorflow/version_1_0/DATA/12/neg_12_train.tfrecords"],shuffle=True,num_epochs=10) reader = tf.TFRecordReader() _, serialized_example = reader.read(filename_queue) #返回文件名和文件 features = tf.parse_single_example(serialized_example, features={ 'img':tf.FixedLenFeature([],tf.string), 'label':tf.FixedLenFeature([],tf.int64), 'roi':tf.FixedLenFeature([4],tf.float32), 'landmark':tf.FixedLenFeature([10],tf.float32), }) img=tf.decode_raw(features['img'],tf.uint8) label=tf.cast(features['label'],tf.int64) roi=tf.cast(features['roi'],tf.float32) landmark=tf.cast(features['landmark'],tf.float32) # img = tf.reshape(img, [48,48,3]) img = tf.reshape(img, [img_size,img_size,3]) # img=img_preprocess(img) min_after_dequeue = 1000 # 10000 batch_size = 10 # 64 capacity = min_after_dequeue + 10 * batch_size image_batch, label_batch, roi_batch, landmark_batch = tf.train.shuffle_batch([img,label,roi,landmark], batch_size=batch_size, capacity=capacity, min_after_dequeue=min_after_dequeue, num_threads=7) i=0 with tf.Session() as sess: sess.run((tf.global_variables_initializer(), tf.local_variables_initializer())) coord = tf.train.Coordinator() threads = tf.train.start_queue_runners(sess=sess,coord=coord) while(1): i=i+1 if(i%9==1): print(sess.run(label_batch))
why?
解决方法:详见here;
完