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

news2024/11/17 21:50:59

特别注意: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.coloradmin.cn/o/1526100.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试工具分享:高效完成测试工作!

说在前头 在社会上,特别是技术圈,大家会有刻板印象:测试工作的含金量不高。因为大家觉得测试不重要,导致给测试的薪水也偏低;这又反向导致好的人才不想来测试行业,测试从业人员的平均水平、工作体现的价值…

Gif动画是如何制作的?用这个网站试试

GIF动图制作是一种流行的图像处理技术,它可以将一系列的静态图像合成为一个连续播放的动画。GIF动图在互联网上广泛应用,成为了表达情感、分享趣味和展示产品的有力工具。想要制作gif动图可以使用专业的Gif动态图片制作工具-GIF中文网,无需下…

代码随想录算法训练营第day26|39. 组合总和、 40.组合总和II、 131.分割回文串

39. 组合总和 力扣题目链接(opens new window) 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 ta…

如何使用 ArcGIS Pro 分析爆炸波及建筑

创建三维图层 在工具箱中点击“3D Analyst 工具\3D要素\转换\依据属性实现要素转3D”,调用依据属性实现要素转3D工具,如下图所示。 调用依据属性实现要素转3D工具 在显示的依据属性实现要素转3D对话框内,输入要素为爆炸点图层,选择高度字段,如下图所示。 依据属性实现…

如何定期清理数据库中的无效数据?

企业的数据库在运行相当长一段时间后,都会出现无效数据的堆积,这些数据包含了过时、重复、错误、缺失(空字段)的数据,长期占据着宝贵的数据库空间。而在上云热潮的推动下,绝大多数企业已经将他们的业务数据…

WIN10系统不定时蓝屏,终止代码:KERNEL_DATA_INPAGE_ERROR,且无法保存蓝屏日志解决办法

程序代码园发文地址:WIN10系统不定时蓝屏,终止代码:KERNEL_DATA_INPAGE_ERROR,且无法保存蓝屏日志解决办法-程序代码园小说,Java,HTML,Java小工具,程序代码园,http://www.byqws.com/ ,WIN10系统不定时蓝屏,终止代码&am…

springboot实战笔记

用户模块开发 用户登录接口实现 根据token获取用户信息 检查账号是否可用 用户注册接口实现

论文笔记:Llama 2: Open Foundation and Fine-Tuned Chat Models

导语 Llama 2 是之前广受欢迎的开源大型语言模型 LLaMA 的新版本,该模型已公开发布,可用于研究和商业用途。本文记录了阅读该论文的一些关键笔记。 链接:https://arxiv.org/abs/2307.09288 1 引言 大型语言模型(LLMs&#xff…

python异常:Exception、BaseException接收异常,并打印异常信息msg

except IOEerror 只能接收到 IO 类型的错误,对于抛出的 NameError 类型的错误,在 Python 中所有的异常类都继承 Exception,所以我们可以使用它来接收所有的异常。 1.Exception接收异常 源码: open("test1.py",r) pr…

什么是React属性钻取(Prop Drilling)

一、介绍 在React开发过程中,状态管理是一个绕不开的话题。无论是新手还是有经验的开发者,都会面临如何有效管理组件状态的挑战。React为我们提供了多种状态管理方案,如直接的状态传递(俗称"属性钻取")、Co…

【Android】工厂测试中 局部 字体显示重叠 问题分析与解决(Android14)

继上一篇【Android】工厂模式中 字体大小/显示重叠/显示不完整 相关 问题分析与解决 的分析与解决,可以实现调整所有字符整体的宽高。 但在局部,如果只希望修改局部的某一行字符的样式,且这一行字符没有直接的资源布局控制文件,而…

YOLOv8独家改进:block改进 | RepViTBlock和C2f进行结合实现二次创新 | CVPR2024清华RepViT

💡💡💡本文独家改进:CVPR2024 清华提出RepViT:轻量级新主干!从ViT角度重新审视移动CNN,RepViTBlock和C2f进行结合实现二次创新 改进结构图如下: 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/category_12511737.html?spm=1001.2014.3001.5482 💡…

modbus客户端

通信方式支持 串口 / udp / tcp通信; 设备协议支持RTU / ASCII / TCP; 读取类型支持bool / short / int / float / double / long / batchbool / batchword

sdwan上外网合法吗?sdwan访问外网的实现方式

随着企业网络的不断发展,越来越多的企业开始探索使用SD-WAN(软件定义广域网)技术来提升网络性能和灵活性。然而,一些人对于SD-WAN是否可以实现与外部网络的连接和访问产生疑问。 SD-WAN是一种基于虚拟化和软件定义的网络技术&…

JavaScript进阶:js的一些学习笔记-原型

文章目录 js面向对象1. 原型2. constructor属性3. 对象原型4. 原型继承5. 原型链 js面向对象 构造函数 属性和方法 function Person(name,age){this.name name;this.age age;this.play ()>{console.log(玩!);} } const a new Person(1,12),b new Person(2…

使用数字人SadTalker创建免费AI主播

很有趣的GitHub项目SadTalker,它能够将一张图片跟一段音频合成一段视频,看起来毫无违和感,如果不仔细看,甚至很难辨别真假,预计未来某一天,一大波网红即将失业。 虽然这个项目目前的主要研究方向还是基于c…

HarmonyOS NEXT应用开发—图片压缩方案

介绍 图片压缩在应用开发中是一个非常常见的需求,特别是在处理用户上传图片时,需要上传指定大小以内的图片。目前图片压缩支持jpeg、webp、png格式。本例中以jpeg图片为例介绍如何通过packing和scale实现图片压缩到目标大小以内。 效果图预览 使用说明…

Vulnhub靶机:Kioptrix_Level1.3

一、介绍 运行环境:Virtualbox 攻击机:kali(192.168.56.101) 靶机:Kioptrix_Level1.3(192.168.56.109) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vul…

大规模采集主流电商平台商品详情页获取商品详情,SKU,价格操作流程

taobao API 接入 参数说明 通用参数说明 参数不要乱传,否则不管成功失败都会扣费url说明 n/平台/API类型/ 平台:淘宝,京东等, API类型:[item_search,item_get,item_search_shop等]version:API版本key:调用key,测试key:test_api_ke…

【周赛】第385场周赛

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 【1】100212.统计前后缀下标对 100212. 统计前后缀下标对 Ihttps://leetcode.cn/problems/count-prefix-and-suffix-pairs-i/ 熟…