如何使用tf.data读取tfrecords数据集

tfrecords有一个问题就是如果数据集图片数量太大了,使用传统的方法tf.train.string_input_producer,就会报OutOfRangeError这个错误,至今我不知道怎么解决,找了无数方法也不知道怎么解决,不过引起的原因大部分是因为数据格式不一致,比如图片有一部分unit8的灰度图,但是你其实在制作RGB三通道的数据集,这样图片格式不一致就会报错,具体原因可以看我其他博客,有一个就是介绍可能引起来的各种方法。

  1. 在制作数据集之前,首先要检查数据集的格式,查看是否一致,图片的格式主要有RGB,RGBA,L,P,
import os
import tensorflow as tf
from PIL import Image

cwd = r'/home/hehe/python/deeplearning/pan/'
num=0
for img_name in os.listdir(cwd):
    img_path = cwd + img_name
    img = Image.open(img_path)
    print(num,img_name ,img )

将输出结果粘贴到word里面,然后查找model=RGBA,找到所有非RGB的图片删除,这一步很关键,如果不删除后面的数据集很可能就不能用。

猜你喜欢

转载自blog.csdn.net/qwe2508/article/details/80555697