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打卡
张小明
前端开发工程师
市场快评 · 今日复盘要点20251217
Q1:今日是否适合低吸? A:今日上涨个股3626 家,大于2500家阈值, 市场情绪得到修复, 把仓位加到 60%。 Q2:昨日最高标今日表现如何? A:昨日最高标 百大集团 今日继续涨停。 3:今日主线题材及板块龙头是谁? A:主线为 智能驾驶,板块龙头 暂时看不出来,核心容量标的为…
强化学习围捕仿真系统优化方案
强化学习围捕仿真系统优化方案 一、问题分析与现状评估 1.1 当前问题分析 在强化学习围捕仿真任务中,主要存在以下核心问题: 速度劣势:围捕艇速度慢于目标,无法通过速度优势直接捕获 成功率极低:2万轮次仅成功20多次,成功率约0.1% 学习效率低下:算法未能有效学习到有…
筛选器管理模块 Cordova 与 OpenHarmony 混合开发实战
📌 概述 筛选器管理模块允许用户保存和管理常用的筛选条件。该模块集成了 Cordova 框架与 OpenHarmony 原生能力,提供了完整的筛选器管理功能。用户可以创建多个筛选器,为每个筛选器设置特定的条件,然后快速应用这些筛选器来查看特…
每日统计模块 Cordova 与 OpenHarmony 混合开发实战
📌 概述 每日统计模块提供了每日喝茶数据的统计分析功能。该模块集成了 Cordova 框架与 OpenHarmony 原生能力,实现了高效的数据统计和可视化展示。用户可以查看特定日期的喝茶记录总数、消费金额、平均评分等统计数据。模块支持日期范围选择和数据导出。…
独立开发在线客服系统手记:实现对 PostgreSQL 的支持,以及与 MySQL 的对比
支持 PostgreSQL 的契机 在客服系统的实际应用中,数据库往往是最核心的底层组件。它不仅决定了系统能否高效支撑百万级访客的实时交互,还影响着企业能否顺利做数据分析和跨系统集成。 过去,升讯威客服系统默认运行在 MySQL 之上,…
AWS SageMaker SDK 完整教程:从零开始云端训练你的模型 _
一、SageMaker介绍Amazon SageMaker 是 AWS 提供的全托管机器学习平台,它覆盖了从数据准备、模型训练、超参数调优到模型部署的完整流程,我们可以通过 SageMaker,轻松创建 Notebook 实例进行数据探索和实验,也可以使用AWS的计算资…