tensorflow数据读取

1.我们看tf文档里面介绍的,把mnist或者cifar10图片数据集转为特殊的二进制数据,然后通过placeholder占位符,

通过占位符读取数据。但是怎么把图片转为特殊的二进制数据?不清楚,怎么特殊?自己去看mnist官网有介绍格式。

2.通过队列读取数据,为什么要用队列方式?因为比如你读取图片要m秒,gpu计算要n秒。每次完成要你n+m秒,gpu

每次要等n秒,浪费资源,所以用2队列并行线程,从而解决了io问题。一个负责读取图片,一个队列负责计算。

等下,tensorflow官方推荐的数据存储方式是tfrecord格式,队列也可以读取tfrecord数据。

为什么这么麻烦?直接读取图片多好?因为每次读取图片要从文件头读到尾,当你有很多图片时候,光读取就很费时间,

所以建议先把图片转为tfrecord格式,再给队列处理。更省时间。在把图片转为tfrecord时候,还有多线程方式加快转化。

数据增强的时候也很慢,所以也建议用多线程方式。

3.现在tf1.4以后,官方又开始主推用dataset方式读取数据,不用以前的队列方式了。貌似dataset更简洁,也功能强大,

还在研究中。dataset也可以读取图片,等其他数据。

未完待续。。。。

猜你喜欢

转载自blog.csdn.net/fu6543210/article/details/80251010