在尝试了Tensorflow官方介绍的几种Input方法后,觉得还是Queues最好用。
一、几种输入方法的比较:
1、Placeholders:
使用方法:创建输入的Placeholder,然后使用feeddict来传入数据。
劣势:由于每个batch都要从硬盘重新读取数据,所以会比较慢。
2、TFRecords:(属于Readers的一种方法)
使用方法:要先把数据转为TFrecord格式
优势:相比其他两种方法速度最快
劣势:如果数据集特别大,转成TFRecord格式会占用大量磁盘空间,因为TFRecord中存的是图像的原始数据,而不是压缩数据。所以小数据集用一用还凑合…
3、Queues:
效率较高,也不用把数据转换成TFrecord格式
1、实现步骤:
(1)获取文件名列表(fileNameList);
(2)(可选)设置乱序(shuffle);
(3)(可选)设置epochs;
(4)将文件名列表存进队列(queue);
(5)文件操作(读取、裁剪等);
(6)设置文件批次(batch)。
具体看这篇博客吧:写的不错
http://www.enpeizhao.com/?p=514