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

DatasetDataLoader是 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的使用(一)

相关推荐
数智工坊5 小时前
机器人运动控制:采样、优化与学习三大流派深度对比与实战
android·学习·机器人
ZC跨境爬虫5 小时前
跟着 MDN 学JavaScript day_7:数学运算与逻辑判断实战测试
开发语言·前端·javascript·学习·ecmascript
探物 AI6 小时前
把 MambaOut 塞进 YOLOv11:会有什么样的反应
python·yolo·计算机视觉
MartinYeung58 小时前
[论文学习]隐私保护联邦特徵选择与差分隐私的的工程实践框架
学习
qeen878 小时前
【C++】类与对象之类的默认成员函数(二)
android·c语言·开发语言·c++·笔记·学习
Flandern11119 小时前
Pull Requests(PR)
学习·github·pr
nashane10 小时前
HarmonyOS 6学习:JsCrash“闪退”法医指南——从FaultLog堆栈还原崩溃现场的终极手册
学习·华为·harmonyos
for_ever_love__10 小时前
UI学习:UICollectionView瀑布流
学习·ui·ios·objective-c·cocoa
AOwhisky10 小时前
MySQL 学习笔记(第六期):MySQL 备份与恢复
运维·数据库·笔记·学习·mysql·云计算
_李小白10 小时前
【android opencv学习笔记】Day 32:直线检测之霍夫变换
android·opencv·学习