news 2026/8/22 16:15:46

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PyTorch深度学习入门笔记(小土堆)P7-14

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

@ZZHow(ZZHow1024)

参考课程:

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

[https://www.bilibili.com/video/BV1hE411t7RN]

P7. TensorBoard的使用(一)

  • TensorBoard 的安装与导入

    pip install -i tensorboard

    fromtorch.utils.tensorboardimportSummaryWriter
  • add_scalar() 的使用

    writer=SummaryWriter('logs')# y = xforiinrange(100):writer.add_scalar("y = x",i,i)writer.close()
  • TensorBoard 的启动

    tensorboard --logdir=logs --port=6006

  • 案例演示:p7_tensorboard_1.py

P8. TensorBoard的使用(二)

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

    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 该如何使用

    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 的使用

    transforms_tensor=transforms.ToTensor()image_tensor=transforms_tensor(image)
  • Normalize 的使用

    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 的使用

    transforms_resize=transforms.Resize((512,512))image_resize=transforms_resize(image)image_resize=transforms_tensor(image_resize)
  • Compose 的使用

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

    transforms_random=transforms.RandomCrop(256)transforms_compose_2=transforms.Compose([transforms_random,transforms_tensor])foriinrange(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

  • 使用

    # 训练数据集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的使用

  • 使用

    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):设置从子进程获取数据的超时时间(秒)。
    • samplerbatch_sampler:自定义数据采样策略(替代默认的随机打乱或顺序采样)。
    • collate_fn(默认值:None):自定义如何将多个样本合并成一个批次(batch)。
  • 案例演示:p14_dataloader.py

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 16:14:43

js 数组对象的map方法

map是否会改变原数组? 大家一般都会说,map不会改变原数组,foreach会改变原数组。不过,也是分情况而定的。 如果数组元素是一般数据类型,那确实map不会改变原数组如果数组是一个数组对象呢? 会发现&#xff…

作者头像 李华
网站建设 2026/8/22 16:09:28

Linux日志审计与故障追踪:从基础命令到高级工具实战指南

在 Linux 服务器运维和开发过程中,你是否遇到过这样的场景:系统突然变慢,却不知道是哪个进程在“作祟”;服务莫名其妙崩溃,日志里只有一句含糊的错误信息;或者更糟,怀疑系统被入侵,却…

作者头像 李华
网站建设 2026/8/22 16:08:27

用普通摄像头免费做眼动追踪:eyeLike 零成本快速上手指南

用普通摄像头免费做眼动追踪:eyeLike 零成本快速上手指南 【免费下载链接】eyeLike A webcam based pupil tracking implementation. 项目地址: https://gitcode.com/gh_mirrors/ey/eyeLike eyeLike 是一个用 OpenCV(最常见的图像库)写…

作者头像 李华
网站建设 2026/8/22 16:06:41

小红书 算法一面 十三

Deepseek r1中的训练方式有什么特别之处?怎么做的think?RLHF的流程是什么? ## 一、DeepSeek R1 训练方式的核心特色与具体实现DeepSeek R1 是 DeepSeek 团队推出的大模型,其训练方式的核心创新是**将 MoE(混合专家&…

作者头像 李华