![TensorFlow深度学习从入门到进阶](https://wfqqreader-1252317822.image.myqcloud.com/cover/944/36922944/b_36922944.jpg)
上QQ阅读APP看书,第一时间看更新
2.6 TensorFlow数据读取的方式
机器学习既然是基于数据的方法,不管它有多抽象,总归是有读取数据的方法的,这里的数据应该是一个统称,包含数据集和变量张量。
TensorFlow一共有3种方法读取数据:
● 供给数据(Feeding):创建占位符,让Python代码来供给数据。
● 从文件读取数据(Reading):TensorFlow可以从文件中读取数据。
● 预加载数据(Preloading):在TensorFlow图中定义常量或变量来保存所有数据(仅
适用于数据量比较小的情况)。
1.供给数据(Feeding)
TensorFlow的数据供给机制可以在TensorFlow运算图中将数据注入任一张量中,使用placeholder创建占位符,然后通过给run()或者eval()函数输入feed_dict参数供给数据,才可以启动运算过程。例如:
![](https://epubservercos.yuewen.com/C16494/19573973401151406/epubprivate/OEBPS/Images/978-7-111-65263-2_61_01.jpg?sign=1738977658-wUAO1Ypnz412MDhh2doOfzZwyHJjeukw-0-12b02cd57d367cf119ba9a7d4dc9dfa0)
2.从文件读取数据(Reading)
从文件中读取数据的内容比较灵活,TensorFlow官方API也给出了例子,有兴趣的读者可以移步官网将数据导入TensorFlow。
3.预加载数据(Preloading)
加载数据集通常是可以完全加载到存储器中的小的数据集。有两种方法:
● 存储在常数中。
● 存储在变量中,初始化后,永远不要改变它的值。
使用常数更简单一些,但是会使用更多的内存(因为常数会内联地存储在数据流图数据结构中,这个结构体可能会被复制几次)。例如:
![](https://epubservercos.yuewen.com/C16494/19573973401151406/epubprivate/OEBPS/Images/978-7-111-65263-2_61_02.jpg?sign=1738977658-aAPFQKw9jEBWHOOO4WtG4qRSqKyVRZGW-0-7db20201198277f9c4b3032b15478c5a)
要使用变量,还需要在构建图形之后对其进行初始化。如:
![](https://epubservercos.yuewen.com/C16494/19573973401151406/epubprivate/OEBPS/Images/978-7-111-65263-2_61_03.jpg?sign=1738977658-bqZmeflmjRBlSv3mTsQ7gQrAM6I1JWUS-0-47392d836a9066f7fcdbb6f344afb186)