什么网站的页面好看流动性管理

张小明 2026/1/9 22:11:26
什么网站的页面好看,流动性管理,ip查询地址精准地图,廊坊关键词排名推广一、Dataset类的_getitem_和_len_方法 在 PyTorch 中#xff0c;torch.utils.data.Dataset 是所有自定义数据集的抽象基类#xff0c;它规定了数据集必须实现两个核心方法#xff1a;__len__ 和 __getitem__。这两个方法是 DataLoader 加载数据的基础#xff0c;决定了数据…一、Dataset类的_getitem_和_len_方法在 PyTorch 中torch.utils.data.Dataset 是所有自定义数据集的抽象基类它规定了数据集必须实现两个核心方法__len__ 和 __getitem__。这两个方法是 DataLoader 加载数据的基础决定了数据集的 “大小” 和 “如何按索引取样本”。Dataset 类的核心作用Dataset 类的设计目标是封装数据集的逻辑如数据读取、预处理、标签映射等对外暴露统一的接口让 DataLoader 可以无感地加载、批量处理、打乱数据。自定义数据集时必须继承 Dataset 并实现 __len__ 和 __getitem__否则实例化会抛出 NotImplementedError。__getitem__ 方法1. 核心作用根据传入的索引 index返回该索引对应的单个样本通常是 “特征 标签” 的组合。DataLoader 会循环调用该方法按索引取样本并将多个样本拼接成批次是数据加载的核心逻辑。2. 实现规则入参仅接收一个整数 index范围0 ≤ index __len__()返回值格式灵活常见形式元组(feature, label)最常用字典{feature: feature, label: label}多模态 / 多特征场景更易读单个值仅特征无监督学习场景。3. 关键注意点索引合法性DataLoader 通常会保证 index 在 [0, __len__()-1] 范围内但自定义时建议避免越界预处理逻辑数据预处理如归一化、图像裁剪、文本分词建议放在该方法中DataLoader 支持多进程加载预处理并行执行效率更高数据类型返回的特征建议转为 torch.Tensor方便后续模型计算标签可根据需求保留 int/float 或转为 Tensor。__len__ 方法1. 核心作用返回数据集的总样本数量DataLoader 依赖该方法知道数据集的 “边界”例如计算迭代轮次总样本数 / 批次大小随机打乱时确定索引范围。2. 实现规则无入参仅返回一个非负整数必须与数据集的实际样本数一致否则会导致索引越界或数据加载不全。二、Dataloader类DataLoader 核心作用自动按 batch_size 从 Dataset 中取多个样本拼接成批次数据如把多个 (feature, label) 拼接成 (batch_feature, batch_label)支持数据打乱shuffle避免模型过拟合支持多进程加载num_workers提升数据读取效率尤其适合大数据集 / 硬盘读取场景灵活的批次拼接逻辑collate_fn适配不同类型数据如变长文本、多模态数据支持内存锁页pin_memory加速数据从 CPU 到 GPU 的传输。参数名作用与说明默认值dataset必须传入的 Dataset 实例自定义 / 内置均可DataLoader 基于它取样本—batch_size每个批次的样本数量1shuffle是否在每个 epoch 开始时打乱数据索引训练集建议 True测试集建议 FalseFalsenum_workers用于数据加载的子进程数多进程加速0 表示主进程加载0drop_last若数据集总数不能被 batch_size 整除是否丢弃最后一个不完整批次Falsecollate_fn自定义批次拼接函数用于处理样本的拼接逻辑如变长文本、自定义数据结构Nonepin_memory是否将加载的数据存入 CUDA 锁页内存GPU 训练时设为 True加速传输Falsetimeout数据加载的超时时间秒防止子进程挂起0sampler自定义索引采样策略优先级高于 shuffleNonebatch_sampler自定义批次索引采样策略与 batch_size/shuffle/sampler 互斥NoneDataLoader 工作原理索引生成根据 Dataset.__len__() 获取总索引范围结合 shuffle/sampler 生成索引序列批次切分将索引序列按 batch_size 切分成多个批次索引如 [0,1], [2,3], [4]样本读取对每个批次的索引调用 Dataset.__getitem__(index) 获取单个样本批次拼接通过 collate_fn 将多个单个样本拼接成批次数据默认拼接成 Tensor 矩阵多进程加速num_workers 0 时子进程并行执行 “样本读取 预处理”主进程仅负责拼接和分发。核心结论Dataset类定义数据的内容和格式即“如何获取单个样本”包括- 数据存储路径/来源如文件路径、数据库查询。- 原始数据的读取方式如图像解码为PIL对象、文本读取为字符串。- 样本的预处理逻辑如裁剪、翻转、归一化等通常通过transform参数实现。- 返回值格式如(image_tensor, label)。DataLoader类定义数据的加载方式和批量处理逻辑即“如何高效批量获取数据”包括- 批量大小batch_size。- 是否打乱数据顺序shuffle。三、MNIST手写数字数据集import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader , Dataset # DataLoader 是 PyTorch 中用于加载数据的工具 from torchvision import datasets, transforms # torchvision 是一个用于计算机视觉的库datasets 和 transforms 是其中的模块 import matplotlib.pyplot as plt # 设置随机种子确保结果可复现 torch.manual_seed(42) # 1. 数据预处理该写法非常类似于管道pipeline # transforms 模块提供了一系列常用的图像预处理操作 # 先归一化再标准化 transform transforms.Compose([ transforms.ToTensor(), # 转换为张量并归一化到[0,1] transforms.Normalize((0.1307,), (0.3081,)) # MNIST数据集的均值和标准差这个值很出名所以直接使用 ]) # 2. 加载MNIST数据集如果没有会自动下载 train_dataset datasets.MNIST( root./data, trainTrue, downloadTrue, transformtransform ) test_dataset datasets.MNIST( root./data, trainFalse, transformtransform )作业# 1. 导入必要库 import torch from torchvision import datasets, transforms import matplotlib.pyplot as plt import numpy as np # 2. 固定随机种子可选保证结果一致 torch.manual_seed(42) # 3. 定义数据预处理CIFAR-10专用均值/标准差 # 说明CIFAR-10的全局均值和标准差是行业公认值标准化用 transform transforms.Compose([ transforms.ToTensor(), # 转Tensor把0-255的PIL图片→0-1的Tensor维度[C, H, W]3,32,32 transforms.Normalize( mean[0.4914, 0.4822, 0.4465], # R/G/B三通道均值 std[0.2470, 0.2435, 0.2616] # R/G/B三通道标准差 ) ]) # 4. 加载CIFAR-10数据集自动下载 # 训练集 train_dataset datasets.CIFAR10( root./data, # 数据集保存路径 trainTrue, # 加载训练集False则加载测试集 downloadTrue, # 本地没有则自动下载 transformtransform # 应用预处理 ) # 5. 关键提取单张图片并可视化 # 5.1 取数据集第0个样本特征Tensor 标签 img_tensor, label_idx train_dataset[0] # img_tensor.shape [3,32,32]label_idx是0-9的整数 print(f图片Tensor形状{img_tensor.shape}) # 输出torch.Size([3, 32, 32]) print(f图片标签索引{label_idx}) # 输出6对应类别“青蛙” # 5.2 定义CIFAR-10类别名称对应索引0-9 cifar10_classes [ 飞机, 汽车, 鸟, 猫, 鹿, 狗, 青蛙, 马, 船, 卡车 ] print(f图片对应类别{cifar10_classes[label_idx]}) # 输出青蛙 # 5.3 预处理还原因为Normalize后数值不在0-1需要反归一化才能正常显示 # 反归一化公式img (img_tensor * std) mean mean np.array([0.4914, 0.4822, 0.4465]) std np.array([0.2470, 0.2435, 0.2616]) # Tensor→numpy维度从[C,H,W]→[H,W,C]matplotlib需要这个顺序 img_np img_tensor.numpy().transpose((1, 2, 0)) img_np img_np * std mean # 反归一化 img_np np.clip(img_np, 0, 1) # 确保数值在0-1之间避免归一化后溢出 # 5.4 可视化图片 plt.figure(figsize(4, 4)) # 设置图片大小 plt.imshow(img_np) # 显示图片 plt.title(fLabel: {cifar10_classes[label_idx]} (索引{label_idx})) plt.axis(off) # 隐藏坐标轴 plt.show()浙大疏锦行
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

龙华龙岗网站建设公司最近韩国电影片在线观看

超简单B站漫画下载器:一键搞定离线阅读难题 【免费下载链接】BiliBili-Manga-Downloader 一个好用的哔哩哔哩漫画下载器,拥有图形界面,支持关键词搜索漫画和二维码登入,黑科技下载未解锁章节,多线程下载,多…

张小明 2026/1/10 14:39:09 网站建设

保定住房和城乡建设局网站心理服务网站建设内容

LobeChat:当开源遇见优雅,重塑AI聊天界面的边界 在大模型浪潮席卷全球的今天,我们早已不再惊讶于一个AI能写出诗、编出代码,甚至通过图灵测试。真正让人皱眉的是——为什么用起来还是这么别扭? 你费尽千辛万苦本地跑通…

张小明 2026/1/8 22:39:58 网站建设

发卡网站建设7az传奇怎么做网站

深入解析Linux网络编程:数据结构、系统调用与数据包处理 1. Linux网络架构概述 Linux内核支持多种不同的网络架构,TCP/IP只是其中之一。它实现了多种网络数据包调度算法,并且包含了一些程序,使得系统管理员可以直接在内核层面轻松设置路由器、网关、防火墙,甚至是一个简…

张小明 2026/1/8 10:54:55 网站建设

网站招代理社区做图网站

使用 PowerShell 脚本管理 Exchange 服务器 在 Exchange 服务器管理中,PowerShell 脚本可以帮助管理员自动化执行各种任务,例如监控数据库中的空白空间、批量创建邮件启用的用户账户等。本文将介绍两个实用的 PowerShell 脚本: GetEvent1221Info.ps1 和 ProvisionExchan…

张小明 2026/1/9 8:19:31 网站建设

犍为移动网站建设风云榜小说排行榜

数字化转型的赛道上,企业正陷入一种对速度的集体崇拜。近七成企业在选择低代码工具时将上线速度列为首要评估指标,三天出原型一周上系统成为衡量工具价值的核心标准,所有人都在追求搭积木般的便捷与高效。但这种追求速度的惯性,正…

张小明 2026/1/9 9:00:10 网站建设

云虚拟主机 wordpressseo实战培训视频

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2026/1/10 0:50:40 网站建设