# Pytorch学习记录

# 简介
PyTorch是Facebook人工智能研究员于2017年在Github上开源,底层用的C和C++,提供了python接口。
# PyTorch和TensorFlow的对比
Pytorch适合学术研究,tensorflow适合工业应用
Pytorch采用动态图,tensorflow采用静态图
- 动态图:编号程序即可执行
- 静态图:先搭建计算图,后运行;允许编辑器进行优化
Pytorch编程容易,tensorflow部署容易
# 文档地址
# 环境搭建
Ubuntu16.04+CUDA+cuDnn+Python3+pip3 Anaconda+Pytorch
实际操作环境:
linux版本:Ubuntu20.04.1
显卡型号:AMD RADEON RX 6950
CPU型号:AMD 锐龙9 7950X CPU
存储:2TB
内存:64GB
# Anaconda安装
包管理工具:
- conda是跨平台的包管理器和环境管理器
- Anaconda继承了conda和大量科学计算包的发行版
- Miniconda是轻量版的Anaconda,很多包用不上时可以选择
但是三者核心的conda命令都是完全一致的
配置环境变量:E:\Environment\miniconda3\condabin ,添加到PATH
查看conda 安装版本
conda -V
# Pytorch安装
先进入conda创建的环境
安装Pytorch时需要根据操作系统、显卡类型、是否使用显卡,安装对应版本的安装包
- Windows/Linux 系统 + NVIDIA 显卡(CUDA 加速) 假设安装支持 CUDA 12.1 的版本(需先安装对应 NVIDIA 驱动和 CUDA 工具包):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
- Windows/Linux/macOS(Intel芯片)+仅CPU
pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple/
- macOS(Apple M1/M2/M3芯片,支持PMS加速)
pip3 install torch torchvision torchaudio
- Linux+AMD显卡(ROCm加速),需先安装 ROCm 平台(如 5.7 版本)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.7
三个库的说明:
- torch是核心库,是整个框架的基础
- torchvision是计算机视觉工具库
- torchaudio是音频处理工具库
加速镜像,添加参数:
-i https://pypi.tuna.tsinghua.edu.cn/simple/
# CUDA和cuDNN 安装
CUDA是NVIDIA推出的并行计算平台和API模型,它使得显卡可以用于图像渲染和计算以外的 目的,例如通用并行计算。PyTorch通过CUDA可以充分利用GPU的计算能力,加速深度神经网络>的学习和推理过程。
- 查看显卡驱动版本
nvidia-smi
- 从官网下载对应的CUDA版本安装包,CUDA版本小于等于显卡版本
- 执行安装包,第一次选择的路径下的文件夹为临时目录,安装完会消失
- 查看是否安装成功
nvcc -V
cuDNN是CUDA的扩展库,专门针对深度神经网络中的基础操作提供高度优化的实现方式, 例如卷积、池化、规范化以及激活层的前向和后向过 程。使用cuDNN可以大大提高深度学习模型在GPU上的运行效率。
下载cuDNN安装包,需要对应CUDA版本
将以下文件夹复制到CUDA安装路径

# ROCm安装(未完成)
ROCm是AMD对标NVIDIA CUDA的解决方案
机器学习问题的构成元素
样本、模型、训练、测试、推理
- 更新系统软件包列表并升级已安装软件
sudo apt update && sudo apt upgrade
- 安装两个必要工具,wget用于从网络下载文件,gnupg2 用于加密
sudo apt install wget gnupg2
- 下载AMD显卡驱动包,在工作站 /usr/local/sbin 目录下
wget https://repo.radeon.com/amdgpu-install/23.40.2/ubuntu/jammy/amdgpu-install_6.0.60002-1_all.deb
- 安装下载好的驱动包
sudo apt install ./amdgpu-install_6.0.60002-1_all.deb
- 安装后驱动后,安装用例
#列出可用的用例,根据需要选择合适用例
sudo amdgpu-install --list-usecase
#这里我们只安装rocm,不安装dkms(不动原有的驱动)
sudo amdgpu-install --usecase=rocm --no-dkms
#添加用户组并重启
sudo usermod -a -G render $LOGNAME
sudo usermod -a -G video $LOGNAME
sudo reboot
- 重启系统,查看显卡信息
rocm-smi
# Tensor
Tensor Variable nn.Module
张量是用于描述多维空间数据的,标量对应0维张量、向量对应1维张量、矩阵对应二维张量