pytorch常用函数
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) # 爱因斯坦求和
更多推荐


所有评论(0)