learn_pytorch

安装

PyTorch 在 PyPI 上的包名是 torch,而不是 pytorch

1
2
# 仅安装 CPU 版本
uv add torch

安装 GPU 版本的 PyTorch 需要指定 CUDA 版本的索引。

1
2
# CUDA 12.1 版本(推荐,适用于较新的显卡)
uv add torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

检查你的 NVIDIA 驱动支持的 CUDA 版本:

1
nvidia-smi

如何知道对应的cuda版本索引

访问 PyTorch 官网: https://pytorch.org/get-started/locally/

torchvisiontorchaudio 是 PyTorch 生态系统中的两个官方扩展库:

torchvision - 计算机视觉工具包:

  • 预训练模型(ResNet、VGG、YOLO 等)
  • 图像数据集(CIFAR-10、ImageNet、COCO 等)
  • 图像转换和增强功能
  • 图像读取和处理工具

torchaudio - 音频处理工具包:

  • 音频数据集
  • 音频转换和预处理
  • 音频特征提取(MFCC、梅尔频谱等)
  • 音频读取和保存

张量与向量

1
2
3
from torch import nn
linear = nn.Linear(5, 3)
linear.state_dict()
1
2
3
4
5
OrderedDict([('weight',
tensor([[ 0.3763, -0.3488, 0.4359, 0.1161, 0.3337],
[ 0.2588, 0.1844, 0.1083, -0.1958, 0.2706],
[-0.0392, -0.0902, 0.3593, -0.2657, 0.3799]])),
('bias', tensor([-0.4142, -0.0444, -0.2487]))])

linear = nn.Linear(5, 3) 创建了一个线性层(全连接层)

参数含义: - 5 - 输入特征数(in_features) - 3 - 输出特征数(out_features)

内部结构: 这个层包含两个可学习的参数: - 权重矩阵 W:形状为 (3, 5) - 偏置向量 b:形状为 (3,)

数学运算: y = xWT + b

'weight' (权重) —— 这是 2阶张量 (矩阵),是一个形状 (Shape) 为 3 × 5矩阵

参考资料

从零搭建神经网络,识别手写数字【PyTorch】【Transformer结构拆解】_哔哩哔哩_bilibili