Tensorflow之数据读取

本文介绍了TensorFlow读取数据的三种方法,重点讲解了从TFRecord和CSV文件中读取数据的细节。TFRecord是TensorFlow的统一数据存储格式,而CSV则是一种常见的文本格式。文中通过示例展示了如何将MNIST数据集转换为TFRecord文件,以及如何使用TextLineReader和decode_csv函数从CSV文件中读取数据。

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

今天我们介绍全新的内容:使用Tensorflow来读取数据。Tensorflow读取数据一共三种方法:

(1) 预加载数据:这种方法适合用于数据量较小的时候,通过在程序中定义常量或者变量的方式来保存所有数据,这种方法较为简单。

(2) 供给数据(Feeding):关于这种方法,我们在前面的会话(Session)内容中也有所提及,供给数据是通过run()函数输入feed_dict参数的方式把数据注入到placeholder后再启动程序。由于之前的内容里我们已经进行了详细介绍,所以这里就不再赘述。

(3) 从文件中读取数据:这种读取数据的方法涉及到文件格式的一些内容,比如常用的CSV格式和TFRecond格式。我们可以将任意的数据转换为TensorFlow 所支持的格式。CSV (Comma-SeparatedValues,字符分隔值)和 TFRecord 都是常用的数据集打包格式,在本节将对TFRecord和CSV进行介绍。

TRFecond格式:TensorFlow 自身提供了一种统一的格式 TFRecord 来存储数据 。在本小节中将介绍如何从这种格式的文件中读取数据以及如何将数据转换为TFRecord 文件。作为一个示例,接下来我们将通过一段代码将 MNIST 数据集转换为TFRecord 文件。其过程大致就是先将数据填入到 Example 协议内存块,再将协议内存块序列化为-个字符串,并且通过python_io.TFRecordWriter 类写入到 TFRecord 文件。代码如下:
在这里插入图片描述

在上面的程序中,SerializeToString()函数用于将协议内存块序列化为一个字符串;程序执行完成后进入到存放 MNIST.tfrecords文件的目录,会发现生成了一个二进制文件,其属性为” Binary(application/octer-stream)” 如果遇到数据量较大的情况,可以将数据写入到多个 TFRecord 文件中。

CSV格式:我们现在见的比较多数据集格式还是CSV格式的文件,CVS (Comma-Separated Values,字符分隔值)文件以纯文本形式存储表格数据(数字和文本),这意味着该文件是一个字符序列,读取该文件不需要经过像二进制数据那样反序列化的过程,CSV文件包含任意数目的记录,记录间以换行符分隔,每条记录都是由字段组成,字段与字段之间的分隔符是其它字符或者字符串,最常见的就是逗号。,

TensorFlow 程序从CSV文件中读取数据,需要使用 TextLineReader 类和 decode_csv()函数,下面进行代码展示:
在这里插入图片描述

Read()的执行会读取文件的一行内容,之后将读取的内容传入decode_csv()中,decode_csv()操作会解析这一行内容并将其转换为张量列表,如果输入的内容有缺失, record defau lts 参数可以根据张量的类型来设置默认值,但要注意record defaults 的数值类型一定要与文件内容一致。程序 print ()函数的输出如以下代码所示。data.csv 文件每一行的前三列被拼接为矩阵的一个元素,第四行单独被输出。以上就是今天的全部内容,主要内容是Tensorflow数据读取的两个文件格式。

关注小鲸融创,一起深度学习金融科技!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值