(done) 解释 python3 torch.utils.data DataLoader

news/2024/12/4 16:45:36/

特别注意:DataLoader 返回的迭代器是无尽的,依据如下 (CHATGPT3.5)

在这里插入图片描述

DataLoader 返回的迭代器默认情况下是无尽的,因为它会无限地循环遍历数据集,以提供批量的数据。在训练神经网络时,通常会使用无尽的迭代器来循环遍历数据集,直到达到指定的训练 epoch 数量或其他停止条件。如果你想要控制迭代器的结束,可以通过设置 DataLoader 的参数 num_epochs 或者在你的训练循环中设置停止条件来实现。例如,在 PyTorch 中,你可以使用 torch.utils.data.DataLoader 的参数 num_epochs 来指定遍历数据集的次数。

torch.utils.data.DataLoader 是一个用来读取 .jsonl 文件的包

它会返回一个可迭代对象,这个对象的每一项是一个 “dict” 类型的数据,储存着 .jsonl 文件的每一行 json 对象

不一定是 “dict” 类型的数据,只是 python 在处理 json 文件时通常使用 dict 类型处理,实际上,也可以是元组或者其它的数据类型


一个寻常的使用用例如下:

# 1. 首先定义如下的一个类
class JSONLDataset(Dataset):# 当你创建一个类的新实例时,__init__方法会被自动调用,用来初始化实例的属性。def __init__(self, file_path):self.data = []with open(file_path, 'r', encoding='utf-8') as f:# .jsonl 的文件的每一行使用 json.loads 去加载它for line in f:self.data.append(json.loads(line.strip()))# 使用 len(这个类的对象) 时,会返回 __len__ 函数返回的东西def __len__(self):return len(self.data)# 使用 这个类的对象[integer] 时,会返回 __getitem__ 函数返回的东西def __getitem__(self, idx):return self.data[idx]# 2. 使用这个类,从 'train.jsonl' 读取训练集数据
train_dataset = JSONLDataset('train.jsonl')# 3. 使用 train_dataset 和 DataLoader,把 .jsonl 中的数据批次化处理,每 batch_size(如32) 个数据为一个批次
train_data_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)# 4. 打印这个可迭代对象里的数据
for batch in train_data_loader:print("=============================== start ================================")print(type(batch))print(batch)print("===============================  end  ================================")

一个不太寻常的使用用例如下,我们用 DataLoader 来批次化处理内置数据集 SST2

train_iter = SST2(split="train")
dataloader = DataLoader(train_iter, batch_size=8, shuffle=False, collate_fn=collate_batch
)

经过验证,这里的 dataloader 中的每一项都是 tuple 类型



http://www.ppmy.cn/news/1385066.html

相关文章

unity 获取Dctionary的第k个元素的键值

在Unity中&#xff0c;如果你想从一个Dictionary<TKey, TValue>中获取第一个键值对&#xff0c;你需要注意Dictionary本身并不保证元素的顺序。然而&#xff0c;你可以使用Dictionary的First()或FirstOrDefault()方法&#xff08;这两个方法需要System.Linq命名空间的支持…

数据分析实战-Python实现博客评论数据的情感分析

数据分析实战-Python实现博客评论数据的情感分析 学习建议SnowNLP基础什么是SnowNLP&#xff1f;SnowNLP情感分析 SnowNLP使用SnowNLP安装情感分析中文分词关键词提取拼音、词性标准 SnowNLP实战-博客评论数据的情感分析数据准备数据获取数据分析 总结 学习建议 现在很多网站、…

《JAVA与模式》之简单工厂模式

系列文章目录 文章目录 系列文章目录前言一、简单工厂模式二、简单工厂模式的优缺点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 在阎宏博士的《JAVA与模式》一…

俄罗斯人最常用的9种道别用语,柯桥零基础俄语培训

1、Пока、Пока пока&#xff5e;&#xff1a;类似中文里的"拜拜"&#xff0c;一般用于非正式场合下对比较熟络的朋友同学等 例&#xff1a; Я ухожу, пока! 我走啦&#xff0c;回头见&#xff01; Пока! Давай прощаться, и…

3.11笔记3

3.11知识点3 1. break 语句和 continue 语句有什么区别&#xff1f;2. 使用 goto 计算 1-23-4......99-100 的值。3. 输入一个整数&#xff0c;判断这个数是不是素数。4. 写程序生成前 100 个素数。56. (a) 对于一个大小为N的数组&#xff0c;它的下标范围是多少&#xff1f;7.…

pycharm安装jupyter

pycharm安装jupyter 文章目录 pycharm安装jupyter 创建新环境rag&#xff0c;python设置为3.8&#xff1a; conda create -n rag python3.8激活conda的rag环境&#xff1a; source activate rag安装jupyter&#xff1a; conda install jupyter利用conda list可以查看conda环…

数据分析-Pandas如何观测数据的中心趋势度

数据分析-Pandas如何观测数据的中心趋势度 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据…

广度优先算法(一篇文章讲透)

目录 引言 一、算法概述 二、算法步骤 1 初始化 2 循环处理 三、算法应用 1 图的最短路径问题 2 网络爬虫 3 社交网络分析 4 游戏路径搜索 事例 四、算法特点与性能 五、性能优化 1 剪枝策略&#xff1a; 2 使用高效的数据结构&#xff1a; 3 并行化处理&#…