pytorch学习笔记

学习视频:

PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili

对应笔记:PyTorch深度学习入门笔记(七)DataLoader的使用_torch dataloader如何设置通道-CSDN博客

(超爽中英!) 2024公认最好的【吴恩达机器学习】教程!附课件代码 Machine Learning Specialization_哔哩哔哩_bilibili

一、基本环境搭建

安装前须知

  1. CUDA 安装位置及环境变量配置

    • CUDA 安装位置:虽然通常 CUDA 安装在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.X 目录下,你可以将 CUDA 安装在其他盘符(例如 D 盘)。只要配置正确的环境变量,系统和 Conda 虚拟环境依然能够识别和使用 CUDA。
    • 关键环境变量
      • PATH:应包含 CUDA 的 bin 目录路径,例如 D:\path\to\cuda\bin
      • CUDA_HOMECUDA_PATH:应指向 CUDA 安装根目录,例如 D:\path\to\cuda
      • LD_LIBRARY_PATH(Linux 系统使用):应包含 CUDA 的库路径,例如 D:\path\to\cuda\lib64
    • 检查 CUDA 是否正常配置
      • 使用 nvcc --version 检查是否成功识别 CUDA 版本。
      • 使用 torch.cuda.is_available() 检查 PyTorch 是否可以使用 GPU。
  2. Conda 虚拟环境中的 PyTorch 与 CUDA

    • PyTorch 是 Python 包:每个 Conda 虚拟环境的 Python 解释器及其依赖都是隔离的。即使主机系统中已经安装了 PyTorch,虚拟环境中依然需要单独安装 PyTorch。
    • 为何不能通过全局变量配置 PyTorch
      • PyTorch 是 Python 的包管理系统一部分,不能通过环境变量实现全局共享。
      • Conda 虚拟环境设计为隔离独立,因此虚拟环境中必须重新安装 PyTorch 才能正常使用。
  3. CUDA 全局共享

    • CUDA 是系统级的库,属于 GPU 驱动的一部分,通过环境变量(如 PATH)可以被所有程序访问,包括 Conda 虚拟环境。因此,Conda 虚拟环境可以共享系统中配置好的 CUDA。
  4. cuDNN 配置

    • 如果你手动安装 cuDNN 并将相关文件(如 binlibinclude)复制到 CUDA 的安装目录中,只要 CUDA 环境变量配置正确,Conda 虚拟环境中的 PyTorch 可以自动使用这些库。

总结

  • Conda 虚拟环境中必须重新安装 PyTorch,但可以共享系统级 CUDA(即使安装在 D 盘)。
  • 配置正确的环境变量后,CUDA 可以被 Conda 环境、PyTorch 等程序访问并使用。
  • PyTorch 无法通过全局变量共享,但 CUDA 是系统级的,能够被所有虚拟环境自动使用。

这样,你可以使用 Conda 虚拟环境,同时访问已安装在 D 盘的 CUDA 库。

安装主要流程

深度学习环境配置:CUDA、cuDNN 和 PyTorch 版本的选择与搭配指南(建议收藏)_cuda和cudnn版本匹配-CSDN博客

配置源:pycharm从安装到全副武装,学起来才嗖嗖的快,图片超多,因为过度详细!_pycharm下载和环境配置-CSDN博客

CUDA Development通常指的是CUDA开发环境和相关工具,它允许开发人员利用NVIDIA的GPU进行高效的并行计算。

CUDA Document指的是CUDA的官方文档和资料,它对于CUDA开发人员来说至关重要。

我自己的版本(时间 2024/9/9): vs2022-cuda12.1-cudnn 8.9.7.29

pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu121
这条命令是在使用 pip 来安装特定版本的 PyTorch、Torchvision 和 Torchaudio 库,同时指定了用于安装的 CUDA 版本和包的来源。

具体解释如下:

pip install: pip 是 Python 包管理器,这个命令用来安装 Python 库。

torch==2.4.0: 安装 PyTorch 版本 2.4.0。PyTorch 是一个开源的深度学习框架,用于机器学习任务。

torchvision==0.19.0: 安装 Torchvision 版本 0.19.0。Torchvision 是 PyTorch 的一个扩展库,主要用于处理计算机视觉任务,提供了常见的数据集、模型架构和图像处理工具。

torchaudio==2.4.0: 安装 Torchaudio 版本 2.4.0。Torchaudio 是 PyTorch 的另一个扩展库,专门用于处理音频数据,支持音频的加载、转换和处理。

--index-url https://download.pytorch.org/whl/cu121: 这个参数指定了包的下载源。这里的 cu121 表示这些包是针对 CUDA 12.1 构建的,也就是说这些库是支持 GPU 加速的。如果你的机器安装了支持 CUDA 12.1 的 NVIDIA GPU 驱动和 CUDA Toolkit,就可以利用 GPU 来加速深度学习计算。

这条命令会确保你安装的 PyTorch、Torchvision 和 Torchaudio 库与指定的 CUDA 版本兼容。

基本安装顺序:python->vs2022->显卡驱动-> CUDA ->CUDA Toolkit ->cuDNN->Pytorch

超详细的Python安装和环境搭建教程_python3.9-CSDN博客

Visual Studio 2022 + opencv-python_vs2022python图形库-CSDN博客

查看显卡驱动版本

nvidia-smi

CUDA Toolkit下载网址:CUDA Toolkit Archive | NVIDIA Developer

windows换源:win11环境配置pip安装源 及更新pip版本_win11 安装pip-CSDN博客

cudnn:cuDNN Archive | NVIDIA Developer

pytorch:Previous PyTorch Versions | PyTorch

查看pytorch安装位置:

C:\Users\33895>pip show mpmath
Name: mpmath
Version: 1.3.0
Summary: Python library for arbitrary-precision floating-point arithmetic
Home-page: http://mpmath.org/
Author: Fredrik Johansson
Author-email: fredrik.johansson@gmail.com
License: BSD
Location: C:\Users\33895\AppData\Local\Programs\Python\Python311\Lib\site-packages
Requires:
Required-by: sympy

总结:

只需要安装cuda,cudnn,将cuDNN相关文件(binlibinclude 等)复制到 CUDA 的安装目录下。然后在虚拟环境中安装pytorch

conda install pytorch torchvision torchaudio -c pytorch

常用工具:jupyter

安装:

conda install nb_conda

二、Anaconda使用

教学视频:6. 聊聊 conda 虚拟环境演示_哔哩哔哩_bilibili

p6主要是写一些anaconda的客户端(图形化界面)和终端介绍以及基本操作。

Anaconda常见语法

Anaconda conda常用命令:从入门到精通_conda list-CSDN博客

常见命令

1.模糊搜索包

conda search jupyte*

2.conda更新某库

conda install tensorboard=1.15

3.查询版本

conda list | findstr pytorch

Conda是安装什么的

Conda是一个开源的软件包管理和环境管理系统,它能够管理多种编程语言和工具的软件包,包括但不限于Python、R、Ruby、Lua、Scala、Java、JavaScript等。然而,需要注意的是,尽管Conda支持多种语言,但在实际应用中,它更多地被用于Python软件包的管理。

具体来说,Conda可以管理以下类型的包:

  1. Python软件包:Conda是Python软件包管理的重要工具之一,它可以安装、更新、配置和卸载Python软件包及其依赖项。通过Conda,用户可以轻松地在不同项目之间切换Python环境,避免版本冲突和依赖问题。
  2. R语言软件包:虽然R语言有自己的包管理系统(如CRAN),但Conda也提供了对R语言软件包的支持。这意味着用户可以在Conda环境中安装和管理R软件包,享受与Python软件包相同的便利。
  3. 其他语言软件包:除了Python和R之外,Conda还支持其他多种编程语言的软件包管理。

我的理解就主要是管理python和r?留个小坑

三、项目实战

1.conda环境配置,通过

C:\Users\33895>where conda
D:\python_ws\tool\anaconda\Library\bin\conda.bat
D:\python_ws\tool\anaconda\Scripts\conda.exe
  1. conda.bat(批处理文件)

    conda.bat 是一个Windows批处理文件(Batch file),它的主要作用是为命令行(如CMD或PowerShell)提供一个简便的方式来调用conda.exe。当你在命令行中输入conda命令时,Windows会查找这个命令的可执行文件。由于Windows环境变量中可能包含了指向conda.bat所在目录的路径(例如,在Anaconda安装过程中,安装程序会自动将Anaconda的Scripts目录添加到系统的PATH环境变量中),因此当你输入conda时,Windows会找到并执行conda.bat

    conda.bat内部包含了调用conda.exe的指令,以及可能的一些初始化设置或环境配置,以确保conda命令能够正确执行。这样,用户就不需要直接调用conda.exe,而是通过更简洁的conda命令来使用Conda包管理器。

  2. conda.exe(可执行文件)

    conda.exe 是Conda包管理器的实际可执行文件。它是用于安装、运行和更新包及其依赖关系的核心工具。当你通过conda.bat(或直接在命令行中指定完整路径调用)执行conda命令时,实际上是在调用conda.exe来执行具体的操作,如安装新的Python包、创建新的环境、列出已安装的包等。

    conda.exe提供了丰富的命令行接口,允许用户执行各种与包管理相关的操作。它是Conda系统的核心组件,负责处理所有与包和环境管理相关的底层逻辑。

conda create -n pytorch-3.8.0 python=3.8.0

conda activate pytorch-3.8.0

conda install -c conda-forge opencv

pip install tensorboard

conda install pytorch torchvision torchaudio -c pytorch


2.conda配置清华源安装opencv 

换源:本文用的第一个

conda 镜像源更换为国内源_conda更换国内源-CSDN博客

Conda 替换镜像源方法尽头,再也不用到处搜镜像源地址_conda换源-CSDN博客

安装opencv

Conda 安装 OpenCV_conda安装opencv-CSDN博客

清空源:

conda config --remove-key channels

3.jupter打开程序

命令:

jupter notebook

4.使用transforms观察训练过程

img_path = r"C:\Users\33895\Desktop\屏幕截图 2024-09-10 084002.png"

    img = Image.open(img_path)
    tensor_trans = transforms.ToTensor()
    tensor_img = tensor_trans(img)
    writer = SummaryWriter("logs")
    writer.add_image("Tensor_Image", tensor_img)
    writer.close()
tensorboard --logdir=logs

四、举例说明

1.cnn 卷积神经网络

卷积层

VGG16 第一步:输入和卷积操作

VGG16 的输入是一个 224x224x3 的彩色图片(RGB 图像,每个通道对应红、绿、蓝)。第一层是一个卷积层,具体参数如下:

  • 卷积核数量(out_channels):64
  • 卷积核大小(kernel_size):3x3
  • 步幅(stride):1
  • 填充(padding):1(保持输入和输出大小一致)

操作细节:

  • 每一个卷积核都是 3x3 大小,并且有 64 个不同的卷积核。
  • 卷积核对输入图像的三个通道同时进行操作。每个卷积核会在输入的 3 个通道上进行 3x3x3 的卷积操作(即 27 个参数),然后通过累加得到一个单通道的输出。
  • 因为有 64 个卷积核,所以这一步的输出通道数会变成 64,且每个通道的大小保持为 224x224(由于有 padding,输入输出的宽高保持不变)。

如果你有一个批次大小为 64 的 RGB 图片,图片的分辨率为 224x224,那么输入张量的维度就是:

  • N = 64 (64 张图片)
  • C = 3 (RGB 图像的 3 个通道)
  • H = 224 (图片高度 224 像素)
  • W = 224 (图片宽度 224 像素)

因此,输入张量的形状为 64x3x224x224,即 NCHW 格式。

五、代码

网络结构代码:

【PyTorch】深度学习入门笔记(十三)搭建小实战和Sequential的使用_sequential的作用-CSDN博客

import torch
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential
from torch.utils.tensorboard import SummaryWriter


class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.model1 = Sequential(
            Conv2d(3, 32, 5, padding=2),
            MaxPool2d(2),
            Conv2d(32, 32, 5, padding=2),
            MaxPool2d(2),
            Conv2d(32, 64, 5, padding=2),
            MaxPool2d(2),
            Flatten(),
            Linear(1024, 64),
            Linear(64, 10)
        )

    def forward(self, x):
        x = self.model1(x)
        return x

net = Net()
print(net)

input = torch.ones((64, 3, 32, 32))
output = net(input)
print(output.shape)

writer = SummaryWriter("./logs_seq")
writer.add_graph(net, input)
writer.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值