1. 张量创建与操作

创建张量

torch.tensor(data) # 从数据创建

torch.zeros(size) # 全零张量

torch.ones(size) # 全一张量

torch.arange(start, end) # 类似 range 的序列

torch.linspace(start, end, steps) # 等间隔张量

torch.rand(size) # [0,1) 均匀分布

torch.randn(size) # 标准正态分布

torch.eye(n) # 单位矩阵

张量操作

tensor.shape # 获取形状

tensor.view(shape) # 改变形状(不拷贝数据)

tensor.reshape(shape) # 改变形状(可能拷贝)

tensor.permute(dims) # 维度重排(如交换维度)

torch.cat(tensors, dim) # 沿维度拼接

torch.stack(tensors, dim) # 沿新维度堆叠

tensor.squeeze() # 去除长度为1的维度

tensor.unsqueeze(dim) # 增加维度

2. 数学运算

torch.add(x, y) # 加法

torch.mul(x, y) # 乘法(逐元素)

torch.matmul(A, B) # 矩阵乘法

torch.sum(tensor, dim) # 沿维度求和

torch.mean(tensor, dim) # 沿维度求平均

torch.max(tensor, dim) # 沿维度求最大值

torch.min(tensor, dim) # 沿维度求最小值

torch.abs(tensor) # 绝对值

torch.exp(tensor) # 指数

torch.log(tensor) # 自然对数

torch.clamp(tensor, min, max) # 数值裁剪

3. 自动微分(Autograd)

tensor.requires_grad_(True) # 启用梯度跟踪

torch.no_grad() # 禁用梯度计算(推理时)

loss.backward() # 反向传播计算梯度

optimizer.step() # 更新参数(需先 backward)

optimizer.zero_grad() # 梯度清零

4. 神经网络层(torch.nn)

基础层

nn.Linear(in_features, out_features) # 全连接层

nn.Conv2d(in_channels, out_channels, kernel_size) # 卷积层

nn.MaxPool2d(kernel_size) # 最大池化

nn.AvgPool2d(kernel_size) # 平均池化

nn.Embedding(vocab_size, embedding_dim) # 词嵌入

 

激活函数

nn.ReLU() # ReLU 激活

nn.Sigmoid() # Sigmoid 激活

nn.Tanh() # Tanh 激活

nn.Softmax(dim) # Softmax

nn.LeakyReLU(negative_slope) # LeakyReLU

归一化层

nn.BatchNorm2d(num_features) # 批归一化

nn.LayerNorm(normalized_shape) # 层归一化

 

5. 损失函数(torch.nn)

nn.MSELoss() # 均方误差(回归)

nn.CrossEntropyLoss() # 交叉熵(分类)

nn.BCELoss() # 二分类交叉熵

nn.L1Loss() # L1 损失

nn.NLLLoss() # 负对数似然

6. 优化器(torch.optim)

optim.SGD(params, lr) # 随机梯度下降

optim.Adam(params, lr) # Adam

optim.RMSprop(params, lr) # RMSprop

optim.Adagrad(params, lr) # Adagrad

7. 数据加载与处理(torch.utils.data)

Dataset # 自定义数据集基类

DataLoader(dataset, batch_size, shuffle) # 数据加载器

TensorDataset(tensors) # 包装张量为数据集

random_split(dataset, lengths) # 拆分数据集

8. 设备管理

torch.cuda.is_available() # 检查 GPU 可用性

tensor.to(device) # 移动张量到设备(CPU/GPU)

model.to(device) # 移动模型到设备

torch.cuda.empty_cache() # 清空 GPU 缓存

 

9. 模型保存与加载

torch.save(model.state_dict(), path) # 保存模型权重

model.load_state_dict(torch.load(path)) # 加载权重

torch.save(model, path) # 保存整个模型

 

10. 实用工具

torch.flatten(tensor) # 展平张量

torch.where(condition, x, y) # 条件选择

torch.manual_seed(seed) # 设置随机种子

torch.einsum(equation, *tensors) # 爱因斯坦求和

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐