本文列举了自己在最近用到过的几种TensorFlow输入方式,包括从原图读取,从CSV (TXT)读取,以及从bin file读取。
1, 从原图读取。
很多情况下我们的图片训练集就是原始图片本身,并没有像cifar dataset那样存成bin等格式。因此我们需要根据一个train_list列表,去挨个读取图片。这里我用到的方法是首先将train_list.txt中的image list(也就是每一行有图片的路劲和label组成)读入队列中,那么对每次dequeue的内容中可以提取当前图片的路劲和label
- filename = os.path.join(data_dir, trainfilename)
- with open(filename) as fid:
- content = fid.read()
- content = content.split('\n')
- content = content[:-1]
- valuequeue = tf.train.string_input_producer(content,shuffle=True)
- value = valuequeue.dequeue()
- dir, labels = tf.decode_csv(records=value, record_defaults=[