PyTorch 基础
- PyTorch 简介
- 机器学习框架
- PyTorch 与 TensorFlow 的核心之争
- PyTorch生态
- PyTorch能做什么
- 开发环境选择
- Pytorch Cuda 安装与疑难解答
PyTorch 简介
2002年提出 torch 框架,是通用的机器学习计算框架,支持GPU加速运算;
2011年推出 torch7,meta 接手,将 Caffee2 与 PyTorch 融合
机器学习框架
Google:TensorFlow2,Keras
keras高层api命名规范,keras的实现交给tensorFlow计算库来实现,即 tf.keras
Meta:PyTorch+Caffee2
Caffee2 与 PyTorch 融合
Microsoft:CNTK
Amazon:MxNet
PyTorch 与 TensorFlow 的核心之争
动态图优先还是静态图优先
TensorFlow:静态图
定义公式 -> 喂输入
公式定义好即不可改变
优点在于理论上会效率更高,但是实际上好像并没有比Pytorch强多少…
PyTorch:动态图
定义公式与输入
可随时停止,方便调式,符合人的思维模式
谷歌在工业界的布局稍强于Meta
PyTorch生态
自然语言处理包: PyTorch NLP,Allen NLP
视觉包: TorchVision
图卷积:PyTorch geometric
对于PyTorch训练好的模型通过ONNX协议部署到其他库中。
PyTorch能做什么
GPU加速,自动求导,常用网络层
自动求导:
import torch
from torch import autograd
x = torch.tensor(1.)
a = torch.tensor(1., requires_grad=True)
b = torch.tensor(2., requires_grad=True)
c = torch.tensor(3., requires_grad=True)
y = a**2 * x + b * x + c
print("before:", a.grad, b.grad, c.grad)
grads = autograd.grad(y, [a,b,c])
print("after:", grads[0], grads[1], grads[2])
常用网络层:
nn.Linear
nn.Conv2d # 卷积层
nn.LSTM # 时序信号的LSTM层
nn.ReLU
nn.Sigmoid # 常用的激活函数
nn.Softmax
nn.CrossEntropyLoss
nn.MSE # MSE函数
开发环境选择
Python 3.9 + Anaconda
CUDA 11.8
Pycharm Community/Professional
Pytorch Cuda 安装与疑难解答
步骤一:查看NVIDIA驱动信息
步骤二:https://developer.nvidia.com/cuda-toolkit-archive 一定要找到对应版本下载,一般大小为3G左右。
步骤三:下载完成,安装完成,不建议更改路径,默认地址,检查是否安装成功:
nvcc -V
步骤四:下载对应版本的Pytorch https://pytorch.org/get-started/locally/
将 Command 放到 Anaconda 中执行
Anaconda将完成下载工作。
一切就绪后,检查是否成功:
import torch
print(torch.__version__)
print("gpu:", torch.cuda.is_available())
如果确定 CUDA 版本没有问题,那么出现 False 的问题大有可能出现在你安装的 PyTorch 是CPU不是GPU的,在如下情况下,建议打开Anaconda
pip uninstall torch
然后重新执行步骤四》…