PyTorch深度学习入门笔记(小土堆)P7-14

PyTorch深度学习入门笔记P7-14

@ZZHow(ZZHow1024)

参考课程:

【PyTorch深度学习快速入门教程【小土堆】】

P7. TensorBoard的使用(一)

  • TensorBoard 的安装与导入

    pip install -i tensorboard

    python 复制代码
    from torch.utils.tensorboard import SummaryWriter
  • add_scalar() 的使用

    python 复制代码
    writer = SummaryWriter('logs')
    
    # y = x
    for i in range(100):
        writer.add_scalar("y = x", i, i)
    
    writer.close()
  • TensorBoard 的启动

    tensorboard --logdir=logs --port=6006

  • 案例演示:p7_tensorboard_1.py

P8. TensorBoard的使用(二)

  • add_image() 的使用(常用来观察训练结果)

    python 复制代码
    writer = SummaryWriter('logs')
    
    image_path = 'xxx'
    image_pil = Image.open(image_path)
    image_array = np.array(image_pil)
    
    writer.add_image('image', image_array, 1, dataformats='HWC')
    
    writer.close()
  • 案例演示:p8_tensorboard_2.py

P9. Transforms的使用(一)

  • transforms 该如何使用

    python 复制代码
    tensor_transform = transforms.ToTensor()
    tensor_image = tensor_transform(image)
  • 案例演示:p9_transforms_1.py

P10. Transforms的使用(二)

  • 为什么需要 Tensor 数据类型
    • Tensor(张量)是PyTorch、TensorFlow等深度学习框架中的核心数据结构,本质上是多维数组 (类似于NumPy的ndarray),但具备更强大的功能,专为高效计算和硬件加速设计。
    • Tensor 是深度学习的基石,它统一了多维数据的表示、支持硬件加速和自动微分,是构建高效、灵活神经网络的必备工具。
  • 案例演示:p10_transforms_2.py

P11. 常见的Transforms(一)

  • ToTensor 的使用

    python 复制代码
    transforms_tensor = transforms.ToTensor()
    image_tensor = transforms_tensor(image)
  • Normalize 的使用

    python 复制代码
    transforms_normalize = transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
    image_norm = transforms_normalize(image_tensor)
  • 案例演示:p11_transforms_use_1.py

P12. 常见的Transforms(二)

  • Resize 的使用

    python 复制代码
    transforms_resize = transforms.Resize((512, 512))
    image_resize = transforms_resize(image)
    image_resize = transforms_tensor(image_resize)
  • Compose 的使用

    python 复制代码
    transforms_resize_2 = transforms.Resize(512)
    transforms_compose = transforms.Compose([transforms_resize_2, transforms_tensor])
    image_resize_2 = transforms_compose(image)
  • RandomCrop 的使用

    python 复制代码
    transforms_random = transforms.RandomCrop(256)
    transforms_compose_2 = transforms.Compose([transforms_random, transforms_tensor])
    for i in range(10):
        image_crop = transforms_compose_2(image)
        writer.add_image('RandomCrop', image_crop, i)
  • 总结

    • 关注输入和输出类型
    • 多看官方文档
    • 关注方法需要什么参数
  • 不知道返回值的时候

    • print
    • print(type())
    • debug
  • 案例演示:p12_transforms_use_2.py

P13. torchvision中的数据集使用

  • 官方数据集

    Datasets --- Torchvision 0.22 documentation

  • 使用

    python 复制代码
    # 训练数据集
    train_set = torchvision.datasets.CIFAR10(root='./dataset', train=True, transform=torchvision.transforms.ToTensor(),
                                             download=True)
    # 测试数据集
    test_set = torchvision.datasets.CIFAR10(root='./dataset', train=False, transform=torchvision.transforms.ToTensor(),
                                            download=True)
  • 数据集的常用参数

    • root (必需参数):指定数据集存储的根目录路径。
    • train (默认值: True):指定加载训练集还是测试集。
    • transform (默认值: None):定义对图像数据的预处理操作(如缩放、归一化、数据增强)。
    • target_transform (默认值: None):定义对标签(target)的预处理操作(如标签映射、编码转换)。
    • download (默认值: False) :是否自动下载数据集到 root 目录。
  • 案例演示:p13_datasets.py

P14. DataLoader的使用

  • 使用

    python 复制代码
    test_data = torchvision.datasets.CIFAR10('./dataset', train=False, transform=torchvision.transforms.ToTensor(),
                                             download=True)
    test_loader = DataLoader(dataset=test_data, batch_size=64, shuffle=True, num_workers=0, drop_last=False)
  • DataLoader 的常用参数

    • dataset (必需参数) :指定要加载的数据集对象,必须是继承自 torch.utils.data.Dataset 的实例。
    • batch_size (默认值: 1):每个批次(batch)加载的样本数量。
    • shuffle (默认值: False):是否在每个 epoch 开始时打乱数据顺序。
    • num_workers (默认值: 0):用于数据加载的子进程数量。
    • drop_last (默认值: False) :是否丢弃最后一个不完整的批次(当样本总数不能被 batch_size 整除时)。
    • pin_memory (默认值: False):是否将数据加载到 CUDA 的固定内存(pinned memory)中。
    • timeout (默认值: 0):设置从子进程获取数据的超时时间(秒)。
    • sampler 和 batch_sampler:自定义数据采样策略(替代默认的随机打乱或顺序采样)。
    • collate_fn (默认值: None):自定义如何将多个样本合并成一个批次(batch)。
  • 案例演示:p14_dataloader.py

相关推荐
2601_957883844 分钟前
2026年9月:雷神笔记本售后相关资讯
python·电脑
xianghongtao011610 分钟前
麦肯锡2026技术趋势03_科学发现与工程AI_研究解读
大数据·人工智能
能源革命16 分钟前
AI 日报 · 2026-10-04
人工智能
远方的狮39 分钟前
机器人越来越多以后,谁来把它们组织起来?
人工智能
IT_陈寒40 分钟前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
天赐范式40 分钟前
天赐范式第185天:让漂变开始定量——扫N看选择主导边界
python·信噪比·数字生命·天赐范式·动态运行时·种群大小·遗传漂变
柳鲲鹏1 小时前
老电脑X99安装WIN11 26H2总结、问题解决办法汇总
笔记
思考着亮1 小时前
13.Agentic RAG -2
人工智能
Jo乔戈里1 小时前
免费本地搜图软件
图像处理·python·搜索引擎·ai
u1301301 小时前
AI 日报(2026年10月4日)
人工智能