pytorch 我是土堆课程学习

2026-1-15

tips:

gethub的download zip 之后,浏览器上下载卡住了:使用 fdm(free download Manager)

右键下载链接复制到fdm即可

anaconda常用指令

进入 Anaconda prompt

conda create -n 环境名称 python=3.6

ad: conda create -n tudui python=3.6

conda list 获取base环境中的所有包

conda env list 表示Anaconda里面所有的环境

conda activate tudui 激活"tudui"这个环境

当然也可以用Anaconda Navigator这种可视化页面来操作

在tudui环境中安装notebook的包

conda activate tudui

conda install nb_conda (注意这里最好别用pip)

jupyter notebook

主要是要看conda list里面有没有ipkernel,没有就需要安装这个包

然后用浏览器进入

新建对应conda环境tudui的notebook

验证:import torch

torch.cuda.is_available()

正确输出:true

help()与dir()

help(torch.cuda.is_available)

dir(torch.cuda.is_available())

Dataset与Dataloader

Dataset和 DataLoader是 PyTorch 中数据加载的两个核心组件,它们分工明确,一起协作完成高效的数据加载和处理。

1. Dataset

  • 定义 :数据集的定义者和描述者

  • 职责 :负责定义数据如何组织、存储和读取

  • 关键方法:

    • __len__():返回数据集的大小

    • __getitem__():根据索引返回单个数据样本

  • 特点:被动组件,不管理批次、打乱等

python 复制代码
from torch.utils.data import Dataset
import torch

class MyDataset(Dataset):
    def __init__(self, data):
        self.data = data
    
    def __len__(self):
        return len(self.data)
    
    def __getitem__(self, idx):
        return self.data[idx]  # 返回单个样本

# 创建数据集
dataset = MyDataset(torch.randn(100, 3, 32, 32))  # 100个样本
print(f"数据集大小: {len(dataset)}")  # 100
sample = dataset[0]  # 获取第一个样本
print(f"样本形状: {sample.shape}")  # torch.Size([3, 32, 32])

2. DataLoader

  • 定义 :数据加载的管理者和执行者

  • 职责 :负责批量加载、打乱、并行处理等

  • 关键功能:

    • 批量处理

    • 数据打乱

    • 多进程并行加载

    • 数据预处理

  • 特点:主动组件,管理加载流程

python 复制代码
from torch.utils.data import DataLoader

# 创建数据加载器
dataloader = DataLoader(
    dataset,          # 传入 Dataset
    batch_size=16,    # 批次大小
    shuffle=True,     # 打乱数据
    num_workers=2,    # 并行进程数
    drop_last=True    # 丢弃最后一个不完整的批次
)

# 遍历批次
for batch in dataloader:
    print(f"批次形状: {batch.shape}")  # torch.Size([16, 3, 32, 32])
    break

P6_Dataset类代码实战

P7_TenSorBoard的使用(一)

P8_TenSorBoard的使用(二)

P9_Transforms的使用(一)

相关推荐
海绵宝宝转agent3 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
每天都要写算法(努力版)4 小时前
【行业前沿报告】DAgger:让智能体在自己走到的状态上学习
人工智能·学习·机器学习
FL16238631295 小时前
智慧医疗X光图像小儿手腕外伤检测数据集VOC+YOLO格式2538张9类别
人工智能·yolo·机器学习
sunshine22 girl7 小时前
Java学习六 Java常见API-2--String-3-字符串的截取替换和其他方法
java·开发语言·学习
YOLO数据集集合8 小时前
红外无人机与鸟类目标检测数据集 | 红外检测 无人机识别 鸟类检测 低空安防 反无人机 yolov11模型9151期
yolo·目标检测·无人机
sunshine22 girl8 小时前
Java学习六 Java常见API-1-Radom随机数
java·开发语言·学习
Answer1st9 小时前
【嵌入式学习】嵌入式原理知识-DMA(九)
学习
传奇开心果编程9 小时前
【ArkUI进阶练中学】第11课:安全与合规进阶
学习·ui·华为·harmonyos
Mr_Macallon11 小时前
C++回顾(基础)(01)
c语言·开发语言·c++·学习
sunoo-22912 小时前
【ARM嵌入式学习笔记第十天】i.MX6ULL eLCDIF控制器驱动RGB LCD全解析(硬件原理+寄存器配置+裸机代码)
arm开发·笔记·学习