tensorflow学习笔记(使用 tf.data 加载文本数据)

本文介绍了如何使用tensorflow的tf.data.TextLineDataset加载文本数据,结合深度学习构建模型。通过实例展示了从数据预处理、词汇表建立、样本编码、数据集划分到模型训练的全过程。
摘要由CSDN通过智能技术生成

本文章是对tf.data.TextLineDataset的学习理解

tensorflow学习笔记(使用 tf.data 加载文本数据)

TextLineDataset 通常被用来以文本文件构建数据集(原文件中的一行为一个样本) 。这适用于大多数的基于行的文本数据(例如,诗歌或错误日志) 。下面将使用相同作品(荷马的伊利亚特)三个不同版本的英文翻译,然后训练一个模型来通过单行文本确定译者

以下是文本数据集建立的流程图
在这里插入图片描述

环境搭建

import tensorflow as tf

import tensorflow_datasets as tfds
import os

三个版本的翻译分别来自于:

William Cowper — text
Edward, Earl of Derby — text
Samuel Butler — text
以下是翻译的部分内容

本教程中使用的文本文件已经进行过一些典型的预处理,主要包括删除了文档页眉和页脚,行号,章节标题。请下载这些已经被局部改动过的文件。

通过循环,逐一从浏览器上下载3个文件,返回文件被保存在计算机中的路径。

利用os.path.dirname,去掉文件名,返回目录。

DIRECTORY_URL = 'https://storage.googleapis.com/download.tensorflow.org/data/illiad/'
FILE_NAMES = ['cowper.txt', 'derby.txt', 'butler.txt']


for name in FILE_NAMES:
  text_dir = tf.keras.utils.get_file(name, origin=DIRECTORY_URL+name)

parent_dir = os.path.dirname(text_dir)

在这里插入图片描述

将文本加载到数据集中

os.path.join用于路径拼接,以’cowper.txt’为例,最终返回C:\Users\HUAWEI.keras\datasets\cowper.txt。

tf.data.TextLineDataset读取文本中数据,一行代表一组数据,将数据映射到tensorflow的dataset。

tf.cast()用于执行tensorflow中张量数据类型转换,此函数中将标签数据格式转换为tf.int64。

def labeler(example, index):
  return example, tf.cast(index, tf.int64)  

tf.data.TextLineDataset读取文本中数据,一行代表一组数据,将数据映射到tensorflow的dataset。返回
在这里插入图片描述

map接收一个函数,Dataset中的每个元素都会被当作这个函数的输入,并将函数返回值作为新的Dataset。该段代码将lines_dataset中的每一项贴上标签,将标签和字符串绑定,返回得labeled_dataset
在这里插入图片描述
最后,将所有标记好的数据集打包为labeled_data_sets。

labeled_data_sets = []

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值