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

哈尔滨 微网站设计成都行业网站

哈尔滨 微网站设计,成都行业网站,移动app开发技术,网页设计ai文章目录 一、前置知识1.dataloader简要介绍2.dataloader 官方文档(翻译后) 二、DataLoader的使用 一、前置知识 1.dataloader简要介绍 DataLoader 是 PyTorch 中用于加载数据的实用工具,它可以处理数据集的批量加载、数据集的随机打乱、多…

文章目录

  • 一、前置知识
    • 1.dataloader简要介绍
    • 2.dataloader 官方文档(翻译后)
  • 二、DataLoader的使用

一、前置知识

1.dataloader简要介绍

DataLoader 是 PyTorch 中用于加载数据的实用工具,它可以处理数据集的批量加载、数据集的随机打乱、多进程数据加载等功能。通过使用 DataLoader,可以更高效地将数据提供给模型进行训练或推理。

具体来说,DataLoader 提供了以下功能:

数据批量加载:DataLoader 可以将数据集划分为固定大小的批次,使得模型可以逐批次地处理数据。

数据集随机打乱:在训练模型时,通常会希望对数据集进行随机打乱,以避免模型学习到数据的顺序性特征。DataLoader 可以在每个周期(epoch)开始时对数据集进行随机打乱。

多进程数据加载:DataLoader 支持多进程数据加载,可以加快数据加载速度,尤其是当数据预处理耗时较长时。

自定义数据加载顺序:可以通过设置 sampler 或 batch_sampler 参数来自定义数据加载的顺序,比如指定按照某种策略抽取样本。

2.dataloader 官方文档(翻译后)

torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=None, sampler=None, batch_sampler=None, num_workers=0, collate_fn=None, pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None, multiprocessing_context=None, generator=None, *, prefetch_factor=None, persistent_workers=False, pin_memory_device=‘’)

DataLoader 类结合了数据集和采样器,并提供了对给定数据集的可迭代访问。

DataLoader 支持 map-style 和 iterable-style 数据集,可以进行单进程或多进程加载,自定义加载顺序,以及可选的自动分批(collation)和内存固定。

参数:

dataset(Dataset):要加载数据的数据集。
batch_size(int,可选):每个批次要加载的样本数(默认为 1)。
shuffle(bool,可选):设置为 True 时,每个周期都会对数据进行重新洗牌(默认为 False)。
sampler(Sampler 或 Iterable,可选):定义从数据集中抽取样本的策略。可以是任何实现了 len 方法的可迭代对象。如果指定了 sampler,则不能指定 shuffle。
batch_sampler(Sampler 或 Iterable,可选):类似于 sampler,但一次返回一批索引。与 batch_size、shuffle、sampler 和 drop_last 互斥。
num_workers(int,可选):用于数据加载的子进程数。0 表示数据将在主进程中加载(默认为 0)。
collate_fn(Callable,可选):合并样本列表以形成 Tensor 的小批量。当从 map-style 数据集进行批处理加载时使用。
pin_memory(bool,可选):如果为 True,则数据加载器将在返回数据之前将 Tensor 复制到设备/CUDA 固定内存中。
drop_last(bool,可选):设置为 True 时,如果数据集大小不能被批量大小整除,则丢弃最后一个不完整的批次。如果为 False 且数据集的大小不能被批次大小整除,则最后一个批次将较小(默认为 False)。
timeout(数值,可选):如果为正值,则为从工作进程收集批次的超时值。应始终为非负数(默认为 0)。
worker_init_fn(Callable,可选):如果不为 None,则会在每个工作进程上调用,输入为工作进程的 id(范围在 [0, num_workers - 1] 之间),在种子化之后数据加载之前使用(默认为 None)。
multiprocessing_context(str 或 multiprocessing.context.BaseContext,可选):如果为 None,则使用操作系统的默认多进程上下文(默认为 None)。
generator(torch.Generator,可选):如果不为 None,则 RandomSampler 将使用此 RNG 生成随机索引,多进程用于生成工作进程的基础种子(默认为 None)。
prefetch_factor(int,可选,仅限关键字参数):每个工作进程预先加载的批次数。2 表示所有工作进程总共会预先加载 2 * num_workers 个批次。
persistent_workers(bool,可选):如果为 True,则数据加载器在数据集被消耗一次后不会关闭工作进程。这允许保持工作进程的数据集实例处于活动状态(默认为 False)。
pin_memory_device(str,可选):如果 pin_memory 为 True,则用于内存固定的设备(默认为 “”)。

二、DataLoader的使用

代码如下:

import torchvision
# 准备测试的数据集
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter# 从CIFAR10导入数据
test_data = torchvision.datasets.CIFAR10("./dataset1", train=False, transform=torchvision.transforms.ToTensor(), download=True)
# 定义数据加载方式
test_loader = DataLoader(dataset=test_data, batch_size=64, shuffle=True, num_workers=0, drop_last=True)# 测试数据集中第一张图片及target
img, target = test_data[0]
# print(img)
# print(target)writer = SummaryWriter("data_loader")
# 两轮获取数据
for epoch in range(2):step=0print(epoch)for data in test_loader:imgs, target = data# print(img.shape)# print(target)writer.add_images("Epoch:{}".format(epoch), imgs, step)step = step+1writer.close()

若将shuffle设置为False,表示“不洗牌”,则两次结果一样:

在这里插入图片描述

若将shuffle设置为True,表示“洗牌”,则两次结果不一样:

在这里插入图片描述

http://www.yayakq.cn/news/630017/

相关文章:

  • 站长怎么添加网站内容泉州模板建站定制
  • 中国建设银行泗水支行的网站收到短信说备案被退回但工信部网站上正常啊
  • 泊头网站建设的有哪些查询公司水利平台网站
  • 网站建设行业的趋势网站开发案例php
  • 深圳定制网站制作咨询电话如何做图让网站的图更清晰
  • 电商网站设计系统vi毕业设计代做网站
  • 网站做编辑赚钱台州网站排名优化公司
  • 网站推广好不好深圳装修设计公司排名前十强
  • 网站做支付需要什么备案广州建设网站的公司
  • 设计工作室网站首页做专利费减是哪个网站
  • 做产品网站营销推广简洁网站
  • 门户网站简介深圳品牌做网站公司
  • 模板做的网站如何下载asp艺术学校网站源码
  • 西充建设局网站网页设计包括哪些内容?
  • 莆田网站建设方案优化Wordpress官网类主题
  • 徐州云建站模板什么是网络营销设计
  • 做一个宣传网站的策划书永州城乡建设网站
  • 网站建设群标签好写什么黑客零基础入门
  • 外贸建站代理wordpress注册邮件设置密码
  • 望城建设局网站兼职 做网站
  • 无锡公共工程建设中心网站电话营销系统
  • 内江网站建设公司太原网站建设杰迅科技
  • 文库类网站建设建议及经验女生学ui设计难吗
  • 微信官方网站建设国外电商网站如何做icp备案
  • 营销型网站制作公司桂林互联网企业
  • 有关建设网站的论文竹溪县县建设局网站
  • 二级域名网站优化推广平台文案
  • 怎么看百度指数网站视觉优化怎么做
  • 付费的网站是指东莞阳光网
  • wap手机网站建设制作开发盗号网站怎么做