【踩坑】framework.errors_impl.OutOfRangeError: RandomShuffleQueue '_1_shuffle_batch/random_shuffle_queue

解决方案:

1.检查文件路径是否有误:
比如我这里,我之前写错了,弄成了../data/test/
但是我的代码文件在其他的磁盘,不在数据盘,就造成了这个bug
在这里插入图片描述
2.检查一下你的batch_size是不是过大了,磁盘读取打满了但是还是没读取到你的数据目标值:
例如:
这里的batch_size我在其他地方设置,设置得太大了,导致磁盘没读取到多线程程序就处理了。
就会爆出这个问题,你应该根据自己的电脑情况配置batch_size,
也别太小,因为batch_size大一点训练比较快。
在这里插入图片描述

其中shuffle_batch的参数设置详细信息:

tensor_list: 入队的张量列表
batch_size: 单次批处理的样本数量
num_threads=1: 线程数量
min_after_dequeue: 单次提取batch_size个样本后,剩余队列进行下一次提取保证的至少剩余量,如果太大,则刚开始需要向capacity中补充很多数据
capacity: 整个队列的容量,从capacity中提取batch_size个样本
seed: 随机提取、补充随机种子数设置
enqueue_many: 进入队列数据是否允许重复,默认不允许重复
希望能对大家的理解有所帮助。

参考网址:
1.磁盘打满情况修改方案和问题详解
2.Tensorflow中tf.train.shuffle_batch的个人理解
3.TensorFlow中踩的坑 : RandomShuffleQueue ‘***’ is closed and has insufficient elements

问题定位

  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 929, in run
    run_metadata_ptr)
  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1152, in _run
    feed_dict_tensor, options, run_metadata)
  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1328, in _do_run
    run_metadata)
  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1348, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.OutOfRangeError: RandomShuffleQueue '_1_shuffle_batch/random_shuffle_queue' is closed and has insufficient elements (requested 64, current size 0)
         [[node shuffle_batch (defined at cnn_words.py:96) ]]

Caused by op 'shuffle_batch', defined at:
  File "cnn_words.py", line 348, in <module>
    tf.app.run()
  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/platform/app.py", line 125, in run
    _sys.exit(main(argv))
  File "cnn_words.py", line 334, in main
    dct = validation()
  File "cnn_words.py", line 255, in validation
    test_images, test_labels = test_feeder.input_pipeline(batch_size=FLAGS.batch_size, num_epochs=1)
  File "cnn_words.py", line 96, in input_pipeline
    min_after_dequeue=100)
  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 324, in new_func
    return func(*args, **kwargs)
  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/training/input.py", line 1346, in shuffle_batch
    name=name)
  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/training/input.py", line 873, in _shuffle_batch
    dequeued = queue.dequeue_many(batch_size, name=name)
  File "/home/admin/.local/lib/python3.6/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/admin/.local/lib/python3.6/site-packages/tensorflow/python/ops/gen_data_flow_ops.py", line 3645, in queue_dequeue_many_v2
    timeout_ms=timeout_ms, name=name)
  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper
    op_def=op_def)
  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
    return func(*args, **kwargs)
  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3300, in create_op
    op_def=op_def)
  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1801, in __init__
    self._traceback = tf_stack.extract_stack()

OutOfRangeError (see above for traceback): RandomShuffleQueue '_1_shuffle_batch/random_shuffle_queue' is closed and has insufficient elements (requested 64, current size 0)
         [[node shuffle_batch (defined at cnn_words.py:96) ]]


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "cnn_words.py", line 348, in <module>
    tf.app.run()
  File "/home/admin/.local/lib/python3.6/site-packages/tensorflow/python/platform/app.py", line 125, in run
    _sys.exit(main(argv))
  File "cnn_words.py", line 334, in main
    dct = validation()
  File "cnn_words.py", line 297, in validation
    acc_top_1 = acc_top_1 * FLAGS.batch_size / test_feeder.size
ZeroDivisionError: float division by zero
sh-4.2$ python cnn_words.py
valid
validation
定位问题截图:

忘了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值