OutOfRangeError: FIFOQueue '_1_batch/fifo_queue' is closed and has insufficient elements 的解决办法

在制作tfrecords过程中出现了这个错误,
OutOfRangeError: FIFOQueue '_1_batch/fifo_queue' is closed and has insufficient elements 的解决办法_第1张图片
在网上找了很多解答,目前主流解答方法有三种:
1.加入初始化全局变量
2.改tf.train.batch 和tf.train.shuffle_batch,里面的num_enpoch,capacity参数不用变
3.数据集的错误
但是这些方法均不适用于我的程序,我花了两周时间检查,我的解决方法应该适用所有类型的tfrecords格式,tfrecords的制作和官方文档思路一致.

首先检查数据集是否有误,在example转化过程涉及到数据格式转化,这里应该和标准统一,稍有不对就会出错,注意区分tf.int32和tf.uint8.

如果格式无误可展开第二步:我发现在图片读取过程中,像素点产生偏移,于是我增加了图片对比度,亮度调整.如果程序无误建议检查图片是否完整.

这种错误产生的原因有很多,但主要还是数据集的问题.检查好数据集,如果有格式不对的数据集也会产生这个原因,删掉即可;像素点偏移的补上即可.

注:用cv2.resize裁剪图片也会造成像素点偏移

你可能感兴趣的:(tfrecords,tensorflow,python)