当前位置: 首页 > news >正文

pytorch 数据载入

在PyTorch中,数据载入是训练深度学习模型的重要一环。
本文将介绍三种常用的数据载入方式:Dataset、DataLoader、以及自定义的数据加载器。

  1. 使用 Dataset 载入数据
    方法:
from torch.utils.data import Datasetclass CustomDataset(Dataset):def __init__(self, ...):# 初始化数据集# ...def __len__(self):# 返回数据集的大小return len(self.data)def __getitem__(self, idx):# 根据索引返回样本和标签return self.data[idx], self.labels[idx]

使用示例:

custom_dataset = CustomDataset(...)
  1. 使用 DataLoader 加载数据集
    方法:
from torch.utils.data import DataLoaderdata_loader = DataLoader(dataset,batch_size=32,shuffle=True,num_workers=4,drop_last=True,
)

参数说明:
dataset: 要加载的数据集对象。
batch_size: 每个批次的样本数量。
shuffle: 是否在每个 epoch 开始时打乱数据。
num_workers: 用于数据加载的进程数。
drop_last: 是否丢弃最后一个不完整的批次。
使用示例:

for data, labels in data_loader:# 训练模型的逻辑
  1. 使用自定义的 Data Loader
    方法:
from torch.utils.data import DataLoader, IterableDatasetclass CustomDataLoader(IterableDataset):def __init__(self, ...):# 初始化数据加载器# ...def __iter__(self):# 返回一个迭代器return iter(self.data)

使用示例:

custom_loader = CustomDataLoader(...)
for data in custom_loader:# 自定义数据处理逻辑

注意事项:
Dataset 和 DataLoader 是 PyTorch 提供的数据载入工具,通常能满足大多数情况。
自定义数据加载器 (IterableDataset) 可以用于特殊情况下的数据加载需求。
总结:
使用 Dataset 创建数据集对象,实现 lengetitem 方法。
使用 DataLoader 加载数据集,设置参数如 batch_size、shuffle 等。
可选地,使用自定义的数据加载器 (IterableDataset) 处理特殊情况下的数据载入需求。

http://www.lryc.cn/news/184053.html

相关文章:

  • angular 在vscode 下的hello world
  • Django、Nginx、uWSGI详解及配置示例
  • 王道考研计算机组成原理——计算机硬件的基础知识
  • [晕事]今天做了件晕事21;设置代理访问网站的时候需注意的问题
  • Go通过reflect.Value修改值
  • 【MySql】4- 实践篇(二)
  • 获取多个接口的数据并进行处理,使用Promise.all来等待所有接口请求完成
  • 利用C++开发一个迷你的英文单词录入和测试小程序-升级版本
  • 用c动态数组(实现权重矩阵可视化)实现手撸神经网络230902
  • Android.mk和Android.bp
  • CSS 常用样式-文本属性
  • BootstrapBlazor企业级组件库:前端开发的革新之路
  • 力扣 -- 1745. 分割回文串 IV
  • C# 给某个方法设定执行超时时间
  • 安装NodeJS并使用yarn下载前端依赖
  • (Java高级教程)第三章Java网络编程-第八节:博客系统搭建(前后端分离)
  • 901. 股票价格跨度
  • JavaScript中的模块化编程,包括CommonJS和ES6模块的区别。
  • 从零开始 Spring Cloud 13:分布式事务
  • 2023Node.js零基础教程(小白友好型),nodejs新手到高手,(二)NodeJS入门——buffer模块、计算机基础、fs模块、path模块
  • lua如何调用C/C++
  • 简单聊一聊公平锁和非公平锁,parallel并行流
  • 【SpringCloud】微服务技术栈入门4 - RabbitMQ初探
  • cefsharp(117.2.20)cef117.2.2最新体验版
  • layui在上传图片在前端处理图片压缩
  • js 事件参考
  • 卷积网络的发展历史-LeNet
  • (2023,GPT-4V,LLM,LMM,功能和应用)大型多模态模型的黎明:GPT-4V(ision) 的初步探索
  • 【C++设计模式之装饰模式:结构型】分析及示例
  • 绘制散点图、曲线图、折线图和环形图失败, 设置迭代次数和进度无法保存图片