Tensorflow加载数据的三种方式

本文详细介绍了TensorFlow中三种数据加载方法:预加载数据、填充数据和从文件读取数据。对比了各种方法的优缺点,包括内存消耗、数据量大小的适应性和效率。适合于想要深入了解TensorFlow数据处理流程的学习者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tensorflow作为符号编程框架,需要先构建数据流图,再读取数据,然后再进行训练。tensorflow提供了以下三种方式来加载数据:

预加载数据(preloaded data):在tensorflow图中定义常量或变量来保存所有数据
填充数据(feeding):Python产生数据,再把数据填充到后端
从文件中读取数据(reading from file):通过队列管理器从文件中读取数据

下面将详细介绍这三种加载数据的方法以及它们之间的优缺点

一、预加载数据
1、以constant的方式进行预加载
2、以variable的方式加载数据
通过预加载的方式加载数据的缺点在于,将数据直接嵌入到数据流图中,当训练数据较大时,很消耗内存。

二、填充数据
填充数据是使用sess.run()中的feed_dict参数,将Python产生的数据填充给后端
填充数据也存在数据量大、消耗内存等缺点,并数据类型转换等中间环节也增加了不少的内存开销。这时候最好采用最后一种加载数据的方式,先在图中定义好文件读取的方法,通过TensorFlow从文件中读取数据,再解码成为训练数据。

三、从文件读取数据
从文件中读取数据,主要分为两个步骤:
1、将样本写入到TFRecords二进制文件中
2、再从队列中读取解码成为可以进行训练的数据

原文及代码:https://blog.youkuaiyun.com/sinat_29957455/article/details/82050351

https://blog.youkuaiyun.com/songbinxu/article/details/80136836
每个epoch/batch将内存中的Numpy数据送入placeholder,只适用于小数据集,会相当占用内存。
从硬盘里的txt或csv文件读取,IO操作比较耗时。
读取tensorflow推荐的TFRecord文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值