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]))
这个错误主要是格式不匹配护着格式不统一造成的。
完整代码: