学习视频:
PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili
对应笔记:PyTorch深度学习入门笔记(七)DataLoader的使用_torch dataloader如何设置通道-CSDN博客
(超爽中英!) 2024公认最好的【吴恩达机器学习】教程!附课件代码 Machine Learning Specialization_哔哩哔哩_bilibili
一、基本环境搭建
安装前须知
-
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_HOME
或CUDA_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。
- 使用
- CUDA 安装位置:虽然通常 CUDA 安装在
-
Conda 虚拟环境中的 PyTorch 与 CUDA
- PyTorch 是 Python 包:每个 Conda 虚拟环境的 Python 解释器及其依赖都是隔离的。即使主机系统中已经安装了 PyTorch,虚拟环境中依然需要单独安装 PyTorch。
- 为何不能通过全局变量配置 PyTorch:
- PyTorch 是 Python 的包管理系统一部分,不能通过环境变量实现全局共享。
- Conda 虚拟环境设计为隔离独立,因此虚拟环境中必须重新安装 PyTorch 才能正常使用。
-
CUDA 全局共享
- CUDA 是系统级的库,属于 GPU 驱动的一部分,通过环境变量(如
PATH
)可以被所有程序访问,包括 Conda 虚拟环境。因此,Conda 虚拟环境可以共享系统中配置好的 CUDA。
- CUDA 是系统级的库,属于 GPU 驱动的一部分,通过环境变量(如
-
cuDNN 配置
- 如果你手动安装 cuDNN 并将相关文件(如
bin
、lib
和include
)复制到 CUDA 的安装目录中,只要 CUDA 环境变量配置正确,Conda 虚拟环境中的 PyTorch 可以自动使用这些库。
- 如果你手动安装 cuDNN 并将相关文件(如
总结
- 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相关文件(bin
、lib
、include
等)复制到 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可以管理以下类型的包:
- Python软件包:Conda是Python软件包管理的重要工具之一,它可以安装、更新、配置和卸载Python软件包及其依赖项。通过Conda,用户可以轻松地在不同项目之间切换Python环境,避免版本冲突和依赖问题。
- R语言软件包:虽然R语言有自己的包管理系统(如CRAN),但Conda也提供了对R语言软件包的支持。这意味着用户可以在Conda环境中安装和管理R软件包,享受与Python软件包相同的便利。
- 其他语言软件包:除了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
-
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包管理器。 -
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()