import torch from torch.utils.data import Dataset, DataLoader from torchvision import datasets, transforms import matplotlib.pyplot as plt # ========================================== # 1. 深入理解 Dataset (自定义演示) # ========================================== class SimpleNumberDataset(Dataset): def __init__(self, start, end): # 模拟数据:生成一个范围内的数字 self.data = list(range(start, end)) def __len__(self): # 返回数据集大小 return len(self.data) def __getitem__(self, index): # 返回一个样本及其标签(这里假设标签就是数字本身) sample = self.data[index] label = sample return torch.tensor(sample), torch.tensor(label) # ========================================== # 2. MNIST 数据集与 DataLoader 实战 # ========================================== # 定义预处理步骤:转为 Tensor 并标准化 transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,)) ]) # 下载并加载 MNIST 训练集 train_dataset = datasets.MNIST( root='./data', train=True, download=True, transform=transform ) # 创建 DataLoader train_loader = DataLoader( dataset=train_dataset, batch_size=64, shuffle=True ) # ========================================== # 3. 验证与回顾 # ========================================== def review(): # 回顾 Dataset 的 len 和 getitem print(f"MNIST 数据集总长度: {len(train_dataset)}") # 取出一个样本 image, label = train_dataset[0] print(f"单个样本形状: {image.shape}, 标签: {label}") # 回顾 DataLoader 的迭代 # 取出一个 batch data_iter = iter(train_loader) images, labels = next(data_iter) print(f"一个 Batch 的图片形状: {images.shape}") # [64, 1, 28, 28] print(f"一个 Batch 的标签形状: {labels.shape}") # [64] # 可视化一个样本 plt.imshow(images[0].numpy().squeeze(), cmap='gray') plt.title(f"Label: {labels[0]}") plt.show() if __name__ == "__main__": review()day38打卡
张小明
前端开发工程师
让YOLO飞起来:从CPU到GPU的配置指南
最近在配置YOLO(You Only Look Once)进行物体检测和图像分割任务时,发现默认安装的情况下,YOLO使用的是CPU进行计算。这对于需要处理大量图像或实时检测的任务来说,效率明显不足。本文将详细介绍如何将YOLO从CPU模式切…
磁链观测器:从仿真到闭环代码实现
磁链观测器(仿真+闭环代码参考文档) 1.仿真采用simulink搭建,2018b版本 2.代码采用Keil软件编译,思路参考vesc中使用的方法,自己编写的代码能够实现0速闭环启动,并且标注有大量注释,方便学习。 …
单机版RS485集中抄表软件:探索电表数据采集的奥秘
单机版RS485集中抄表软件,集中抄读645-2007协议的智能电表,645-1997的没有测试过,不清楚能不能抄,本地485有线集中抄表,配合485转网络可实现远程抄表在电力数据采集领域,单机版RS485集中抄表软件发挥着至关…
探索EKF算法在机器人轨迹定位中的神奇魅力
EKF算法做机器人轨迹定位/跟踪的程序,与里程计算法进行对比,结果显示EKF算法定位/跟踪精度更高。 纯里程计的误差为 error_Odom_average 1.0283 Ekf定位的误差为 error_Ekf_average 0.071629在机器人领域,轨迹定位和跟踪可是至关重要的任务…
echarts4升级为echarts5的常见问题
[ECharts] DEPRECATED: textStyle hierarchy in label has been removed since 4.0. All textStyle properties are configured in label directly now.[ECharts]已弃用:标签中的textStyle层次结构自4.0以来已被删除。现在,所有textStyle属性都直接在标签…
六西格玛证书等级真相超反转,绿带其实是企业的最爱!- 优思学院
为什么企业最爱绿带,而不是黑带?在国内制造业、互联网企业以及服务型组织中,六西格玛证书早已不是一个陌生名词。绿带、黑带、黑带大师这三个等级,看起来像是一条清晰的能力进阶路径:从工具型人才,到项目型…