type
Post
status
Published
date
Jun 19, 2025
slug
pytorch
summary
收录Pytorch基本知识及使用
tags
推荐
技术
category
技术分享
icon
password
comment
Show
每个部分都是参考b站小土堆写的,我觉着这个up主讲的蛮好的,手把手教学,b站点击量也很高,适合入门~ 感觉pytorch中文文档删减好多内容,好多还是得对照原版: 官方pytorch参考英文文档https://pytorch.org/docs/stable/index.html 官方pytorch参考中文文档https://pytorch-cn.readthedocs.io/zh/latest/ 2024.11.17 完结撒花~完成了一周速通pytorch基础的工作,接下来就上手实战了!
💡
写在最前面: 如果不知道某个数据的数据类型,可以选择使用print(type()) 来打印一下数据的数据类型,这样应该可以快速debug~

Pytorch工具学习

一、pytorch常识

Part 1:环境配置

1. 安装anaconda

  • 安装成功以后打开Anaconda Prompt可以看到命令行最前方出现(base)证明成功

    2. pytorch安装(在你想要安装pytorch的虚拟环境下)

    • pytorch安装地址:https://pytorch.org/
      • notion image
      • 选择你适合的版本,博主本人是mac没法用gpu所以cuda就全部失效,只能用default了
      • 尽量选择stable版本,这样比较稳定。如果你是windows或者linux就需要去检查你的gpu型号,可以采用在命令行输入命令:nvidia-smi 来查看你的gpu型号,然后查看cuda支持的gpu型号,选择好以后复制在Run this Command一栏后方的命令,上图显示的是pip3 install torch torchvision torchaudio ,这个命令每个人操作系统型号不同因此命令不同。
      • 如果没有独立显卡或者不支持你的gpu,那么在Compute Platform就选择None
      • 复制到命令行,在虚拟环境中(即看一下命令行前面是base还是你的环境名称,如果是base就conda activate一下)执行即可
    • 更多有关环境配置问题可以自行上网查找,此处不再赘述

    Part 2:好用的python命令

    1. dir()

    • dir()是查看某个包的内容以及某个类的内容的命令
    • 在命令行中:

      2. help()

      • help() 是查看某个函数的使用方法
      • 在命令行中:

        3. 章节总结

        • python文件中想要执行上面的内容,就需要借助print
           

          Part 3:Dataset类的使用

          1. 不区分标签文件夹代码示例

           

          2. 用txt文件存储标签代码示例(包含split用法)

           

          Part 4:Tensorboard使用

          SummaryWriter类的使用

          • 这一部分主要有两个核心函数,一个是add_image() ,一个是add_scalar() ,接下来分别介绍两个函数的用法
          • add_scalar() 函数
            • 运行完上面程序后,然后会发现在对应目录文件夹下出现一个logs文件夹,里面有一个文件是你无法直接打开的,下面介绍如何打开这个文件在终端中,进入logs的上一级文件夹,比如该项目中就对应Part3 ,随后执行tensorboard --logdir logs
            • 如果报错可能有以下几种解决办法:
              • 先看一下主机名是不是含有汉字了
              • 如果没有可以尝试pip install --upgrade tensorboard更新一下版本
              • 将命令中的logs改为绝对路径,具体方法自行百度即可
            • 还可以指定打开的端口,比如:tensorboard --logdir logs --port 6007
            • notion image
              notion image
            • 这里注意,现在显示的是页面中有两幅图,y = xy = 2x,如果不更换writer.add_scalar("y = 2x", 2 * i, i)中的title,就会导致后续的图像也会在同一个title下的图像中绘制,比如我现在如果执行writer.add_scalar("y = 2x", 3 * i, i),就会发现y = 2x,y = 3x出现在同一个图像中,会造成视觉混淆,如果出现不妨停止程序,然后更新一下title再重新绘制就可以了(不过好像现在修复了?我和up主用的不是一个版本,现在不会出现这个问题,好像会直接覆盖掉原来的)
          • add_image() 函数
            • 同样在tensorboard中查看,命令和上面的相同,结果如下:
            • notion image
           

          Part 5:Transforms的使用

          • torchvision.transforms 是 PyTorch 中一个用于数据预处理和增强的模块,尤其在图像处理任务中广泛应用。其主要作用是对输入数据(如图像)进行变换,以便适配模型的输入格式,同时提高模型的鲁棒性。
          • 主要应用
              1. 数据预处理: 例如,调整图像大小、裁剪、归一化等,使数据满足模型的输入要求。
              1. 数据增强: 通过对图像进行随机变换(如旋转、翻转等),增加数据的多样性,提高模型的泛化能力。
              1. 管道式操作: 通过 transforms.Compose 将多个变换组合在一起,实现预处理和增强的流水线。

          1. transforms.Compose

          • 作用: 用于将多个变换组合成一个顺序流水线,方便对数据进行一系列预处理和增强操作。
          • 参数: 接收一个列表,列表中的每个元素是一个单独的变换。
          • 示例:
            • 解释: 这里的流水线依次调整图像大小、转换为张量、并对像素值标准化。

          2. transforms.Resize

          • 作用: 调整图像大小。
          • 参数:
            • size 目标大小,若为元组 (height, width) 则指定高和宽;若为单一值,则将较短边调整到此值,保持长宽比。
            • interpolation(可选): 指定插值方式(如双线性插值、最近邻插值等),默认是 InterpolationMode.BILINEAR
          • 示例:
            • 解释: 将图像调整为固定大小的 128x128 像素。

          3. transforms.CenterCroptransforms.RandomCrop

          • 作用:
            • 参数:
              • 示例:

                4. transforms.ToTensor

                • 作用: 将 PIL 图像或 numpy 数组转换为 PyTorch 张量,并将像素值归一化到 [0, 1]
                • 参数: 无。
                • 示例:

                  5. transforms.Normalize

                  • 作用: 对张量进行标准化处理,使每个通道的值服从指定的均值和标准差。
                  • 参数:
                    • 示例:

                      6. transforms.RandomHorizontalFliptransforms.RandomVerticalFlip

                      • 作用: 随机水平或垂直翻转图像。
                      • 参数:
                        • 示例:

                          7. transforms.RandomRotation

                          • 作用: 随机旋转图像。
                          • 参数:
                            • 示例:

                              C++STL简介2024年高教社杯数学建模国赛
                              Loading...