tensorflow.python.framework.errors_impl.OutOfRangeError: RandomShuffleQueue '_0_shuffle_batch/random

tensorflow自作tfrecord数据集发生的错误

tensorflow.python.framework.errors_impl.OutOfRangeError: 
RandomShuffleQueue '_0_shuffle_batch/random_shuffle_queue' 
is closed and has insufficient elements 
(requested 25, current size 0)

关键:(requested 25, current size 0)

发现当前返回的size为0,证明制作的数据集没有被简析出来,:

原因:

1. 数据集本身的问题,例如数据格式不同意,常见的是通道数不同,数据集中既有彩色图,也有灰度图;

2. 数据在转换与解析中格式没有对应 tfrecord需要将数据转换为tostring,那么简析的时候同样需要如此

转换:

image_raw_data = res.tostring()

解析:

'label_raw': tf.FixedLenFeature([], tf.string),

这里面很重要的一个点就是:

转换为字符串需要调用这个函数(官方教程使用了这个函数)

# 生成字符串型的属性
def _bytes_feature(value):
    return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))

这个错误主要是格式不匹配护着格式不统一造成的。

完整代码:

https://gitee.com/xiemooc/gen_tfrecord/tree/master

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值