有关TextLineDataset

本文介绍了TensorFlow中TextLineDataset的基本使用方法,包括如何通过单个文件名或文件名列表创建数据集,以及如何提取数据集中的每行数据。

有关TextLineDataset

基本使用方式lines_dataset =tf.data.TextLineDataset(fileNames)

其中1、fileNames可以是单个文件名(相对路径、绝对路径的字符串),也可以是list类型的多个文件名。

2、lines_dataset是<TextLineDatasetV2 shapes: (), types: tf.string>,如果想提出其中的每行数据,使用以下代码

  for text_tensor in lines_dataset:
    print("text_tensor=", type(text_tensor), text_tensor)
    print(text_tensor.numpy())

 

import tensorflow_datasets as tfds import tensorflow as tf # 指定数据目录 data_dir = "C:\\Users\\1111\\Desktop\\test" # 创建训练集和验证集 batch_size = 32 seed = 42 validation_split = 0.2 train_ds = tf.keras.preprocessing.text_dataset_from_directory( data_dir, validation_split=validation_split, subset="training", seed=seed, batch_size=batch_size ) val_ds = tf.keras.preprocessing.text_dataset_from_directory( data_dir, labels='inferred', validation_split=validation_split, subset="validation", seed=seed, batch_size=batch_size ) # 查看数据集的前几个批次 for text_batch, label_batch in train_ds.take(1): print("Text batch shape:", text_batch.shape) print("Label batch shape:", label_batch.shape) print("First text sample:", text_batch[0].numpy().decode('utf-8')) print("First label:", label_batch[0].numpy()) # 文本数据预处理 # 加载文本文件 cowper = tf.data.TextLineDataset('./cowper.txt') # 1)建立词汇表 # 实例化一个分词器tokenizer,我的tf版本旧,是features tokenizer = tfds.features.text.Tokenizer() # 有些是tfds.deprecated.text.Tokenizer(),tf版本不同接口可能不同 # 自定义空集合,集合中没重复元素,所以可以去重复项 vocabulary_set = set() # 循环获取词汇 for text_tensor in cowper: # 遍历我们刚刚加载的文件内容,会一行一行处理 # print(text_tensor,end='+') some_tokens = tokenizer.tokenize(text_tensor.numpy()) # tokenizer.tokenize()函数会将字符串进行wordpiece分词处理,并返回一个list # print(some_tokens) vocabulary_set.update(some_tokens) # 使用刚刚的空set进行去重 # 查看词汇表大小 vocab_size = len(vocabulary_set) print('词汇表大小:', vocab_size) vocabulary_list = list(vocabulary_set) # 将set转为list,因为list有序,否则会导致最后输出的一行编码值不固定 vocabulary_list.sort() # 2)构建编码器 encoder = tfds.features.text.TokenTextEncoder(vocabulary_list) # 输出查看词汇样式 example_text = next(iter(cowper)).numpy() print('样式:', example_text) # 样式编码 encoded_example = encoder.encode(example_text) print('样式编码:', encoded_example) 检查问题
最新发布
03-22
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值