北京做网站推广,黑龙江学校网站建设,网页设计的网网页设计的网站,微信上的h5页面是怎么制作的PyTorch API 详细中文文档
按模块分类#xff0c;涵盖核心函数与用法示例 目录
张量操作 (Tensor Operations)数学运算 (Math Operations)自动求导 (Autograd)神经网络模块 (torch.nn)优化器 (torch.optim)数据加载与处理 (torch.utils.data)设备管理 (Device Management)模…
PyTorch API 详细中文文档
按模块分类涵盖核心函数与用法示例 目录
张量操作 (Tensor Operations)数学运算 (Math Operations)自动求导 (Autograd)神经网络模块 (torch.nn)优化器 (torch.optim)数据加载与处理 (torch.utils.data)设备管理 (Device Management)模型保存与加载分布式训练 (Distributed Training)实用工具函数 1. 张量操作 (Tensor Operations)
1.1 张量创建
函数描述示例torch.tensor(data, dtype, device)从数据创建张量torch.tensor([1,2,3], dtypetorch.float32)torch.zeros(shape)创建全零张量torch.zeros(2,3)torch.ones(shape)创建全一张量torch.ones(5)torch.rand(shape)均匀分布随机张量torch.rand(3,3)torch.randn(shape)标准正态分布张量torch.randn(4,4)torch.arange(start, end, step)创建等差序列torch.arange(0, 10, 2) → [0,2,4,6,8]torch.linspace(start, end, steps)线性间隔序列torch.linspace(0, 1, 5) → [0, 0.25, 0.5, 0.75, 1]
1.2 张量属性
属性/方法描述示例.shape张量维度x torch.rand(2,3); x.shape → torch.Size([2,3]).dtype数据类型x.dtype → torch.float32.device所在设备x.device → device(typecpu).requires_grad是否追踪梯度x.requires_grad True
1.3 张量变形
函数描述示例.view(shape)调整形状不复制数据x torch.arange(6); x.view(2,3).reshape(shape)类似 view但自动处理内存连续性x.reshape(3,2).permute(dims)调整维度顺序x torch.rand(2,3,4); x.permute(1,2,0).squeeze(dim)去除大小为1的维度x torch.rand(1,3); x.squeeze(0) → shape [3].unsqueeze(dim)添加大小为1的维度x torch.rand(3); x.unsqueeze(0) → shape [1,3] 2. 数学运算 (Math Operations)
2.1 逐元素运算
函数描述示例torch.add(x, y)加法torch.add(x, y) 或 x ytorch.mul(x, y)乘法torch.mul(x, y) 或 x * ytorch.exp(x)指数运算torch.exp(torch.tensor([1.0])) → [2.7183]torch.log(x)自然对数torch.log(torch.exp(tensor([2.0]))) → [2.0]torch.clamp(x, min, max)限制值范围torch.clamp(x, min0, max1)
2.2 矩阵运算
函数描述示例torch.matmul(x, y)矩阵乘法x torch.rand(2,3); y torch.rand(3,4); torch.matmul(x, y)torch.inverse(x)矩阵求逆x torch.rand(3,3); inv_x torch.inverse(x)torch.eig(x)特征值分解eigenvalues, eigenvectors torch.eig(x)
2.3 统计运算
函数描述示例torch.sum(x, dim)沿维度求和x torch.rand(2,3); torch.sum(x, dim1)torch.mean(x, dim)沿维度求均值torch.mean(x, dim0)torch.max(x, dim)沿维度求最大值values, indices torch.max(x, dim1)torch.argmax(x, dim)最大值索引indices torch.argmax(x, dim1) 3. 自动求导 (Autograd)
3.1 梯度计算
函数/属性描述示例x.backward()反向传播计算梯度x torch.tensor(2.0, requires_gradTrue); y x**2; y.backward()x.grad查看梯度值x.grad → 4.0若 y x²torch.no_grad()禁用梯度追踪with torch.no_grad(): y x * 2detach()分离张量不追踪梯度y x.detach()
3.2 梯度控制
函数描述x.retain_grad()保留非叶子节点的梯度torch.autograd.grad(outputs, inputs)手动计算梯度
示例
x torch.tensor(3.0, requires_gradTrue)
y x**3 2*x
dy_dx torch.autograd.grad(y, x) # 返回 (torch.tensor(29.0),) 4. 神经网络模块 (torch.nn)
4.1 层定义
类描述示例nn.Linear(in_features, out_features)全连接层layer nn.Linear(784, 256)nn.Conv2d(in_channels, out_channels, kernel_size)卷积层conv nn.Conv2d(3, 16, kernel_size3)nn.LSTM(input_size, hidden_size)LSTM 层lstm nn.LSTM(100, 50)nn.Dropout(p0.5)Dropout 层dropout nn.Dropout(0.2)
4.2 激活函数
函数描述示例nn.ReLU()ReLU 激活F.relu(x) 或 nn.ReLU()(x)nn.Sigmoid()Sigmoid 函数torch.sigmoid(x)nn.Softmax(dim)Softmax 归一化F.softmax(x, dim1)
4.3 损失函数
类描述示例nn.MSELoss()均方误差loss_fn nn.MSELoss()nn.CrossEntropyLoss()交叉熵损失loss loss_fn(outputs, labels)nn.BCELoss()二分类交叉熵loss_fn nn.BCELoss() 5. 优化器 (torch.optim)
5.1 优化器定义
类描述示例optim.SGD(params, lr)随机梯度下降optimizer optim.SGD(model.parameters(), lr0.01)optim.Adam(params, lr)Adam 优化器optimizer optim.Adam(model.parameters(), lr0.001)optim.RMSprop(params, lr)RMSprop 优化器optimizer optim.RMSprop(params, lr0.01)
5.2 优化器方法
方法描述示例optimizer.zero_grad()清空梯度optimizer.zero_grad()optimizer.step()更新参数loss.backward(); optimizer.step()optimizer.state_dict()获取优化器状态state optimizer.state_dict() 6. 数据加载与处理 (torch.utils.data)
6.1 数据集类
类/函数描述示例Dataset自定义数据集基类继承并实现 __len__ 和 __getitem__DataLoader(dataset, batch_size, shuffle)数据加载器loader DataLoader(dataset, batch_size64, shuffleTrue)
自定义数据集示例
class MyDataset(Dataset): def __init__(self, data, labels): self.data data self.labels labels def __len__(self): return len(self.data) def __getitem__(self, idx): return self.data[idx], self.labels[idx] 6.2 数据预处理 (TorchVision)
from torchvision import transforms transform transforms.Compose([ transforms.Resize(256), # 调整图像大小 transforms.ToTensor(), # 转为张量 transforms.Normalize(mean[0.5], std[0.5]) # 标准化
]) 7. 设备管理 (Device Management)
7.1 设备切换
函数/方法描述示例.to(device)移动张量/模型到设备x x.to(cuda:0)torch.cuda.is_available()检查 GPU 是否可用if torch.cuda.is_available(): ...torch.cuda.empty_cache()清空 GPU 缓存torch.cuda.empty_cache() 8. 模型保存与加载
函数描述示例torch.save(obj, path)保存对象模型/参数torch.save(model.state_dict(), model.pth)torch.load(path)加载对象model.load_state_dict(torch.load(model.pth))model.state_dict()获取模型参数字典params model.state_dict() 9. 分布式训练 (Distributed Training)
函数/类描述示例nn.DataParallel(model)单机多卡并行model nn.DataParallel(model)torch.distributed.init_process_group()初始化分布式训练需配合多进程使用 10. 实用工具函数
函数描述示例torch.cat(tensors, dim)沿维度拼接张量torch.cat([x, y], dim0)torch.stack(tensors, dim)堆叠张量新建维度torch.stack([x, y], dim1)torch.split(tensor, split_size, dim)分割张量chunks torch.split(x, 2, dim0) 常见问题与技巧 GPU 内存不足 使用 batch_size 较小的值启用混合精度训练 (torch.cuda.amp)使用 torch.utils.checkpoint 节省内存 梯度爆炸/消失 使用梯度裁剪torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm1.0)调整权重初始化方法 模型推理模式 model.eval() # 关闭 Dropout 和 BatchNorm 的随机性
with torch.no_grad(): outputs model(inputs) 文档说明
本文档基于 PyTorch 2.5 编写部分 API 可能不兼容旧版本。更详细的参数说明请参考 PyTorch 官方文档。