海盐建设局网站,seo网站建设技巧,优化网站,优秀网页设计导航1. torch
核心功能
张量操作#xff1a;PyTorch 的张量是一个多维数组#xff0c;类似于 NumPy 的 ndarray#xff0c;但支持 GPU 加速。数学运算#xff1a;提供了各种数学运算#xff0c;包括线性代数操作、随机数生成等。自动微分#xff1a;torch.autograd 模块用于…1. torch
核心功能
张量操作PyTorch 的张量是一个多维数组类似于 NumPy 的 ndarray但支持 GPU 加速。数学运算提供了各种数学运算包括线性代数操作、随机数生成等。自动微分torch.autograd 模块用于自动计算梯度。设备管理允许在 CPU 和 GPU 之间移动张量。
示例代码
import torch# 创建张量
x torch.tensor([1.0, 2.0, 3.0], requires_gradTrue)
y torch.tensor([4.0, 5.0, 6.0])# 张量加法
z x y
print(fz: {z})# 计算梯度
z.sum().backward() # 求和的原因是求梯度需要是一个标量
print(fGradients of x: {x.grad})2. torch.nn
核心功能
构建神经网络模块nn.Module 是所有神经网络模块的基类。常用层如卷积层、池化层、全连接层、激活函数、归一化层等。损失函数如交叉熵损失、均方误差损失等。
示例代码
import torch.nn as nn# 定义一个简单的前馈神经网络
class SimpleNet(nn.Module):def __init__(self):super(SimpleNet, self).__init__()self.fc1 nn.Linear(10, 5)self.fc2 nn.Linear(5, 1)def forward(self, x):x torch.relu(self.fc1(x))x self.fc2(x)return xmodel SimpleNet()
print(model)3. torch.optim
核心功能
优化算法包括 SGD、Adam、RMSprop 等。学习率调度器用于动态调整学习率如 StepLR、ExponentialLR。
示例代码
import torch.optim as optim# 定义模型
model SimpleNet()# 定义优化器
optimizer optim.Adam(model.parameters(), lr0.001)# 更新模型参数
optimizer.zero_grad()
output model(torch.randn(1, 10))
loss torch.mean(output)
loss.backward()
optimizer.step()# 学习率调度器
scheduler optim.lr_scheduler.StepLR(optimizer, step_size10, gamma0.1)
scheduler.step()4. torch.utils.data
核心功能
数据集Dataset 类用于自定义数据集。数据加载器DataLoader 用于批量加载数据支持多线程加载。数据变换通过 torchvision.transforms 可以对数据进行预处理和增强。
示例代码
from torch.utils.data import Dataset, DataLoader# 自定义数据集
class MyDataset(Dataset):def __init__(self, data):self.data datadef __len__(self):return len(self.data)def __getitem__(self, idx):return self.data[idx]dataset MyDataset([1, 2, 3, 4])
dataloader DataLoader(dataset, batch_size2, shuffleTrue)for batch in dataloader:print(batch)5. torchvision
核心功能
数据集提供了常用的计算机视觉数据集如 MNIST、CIFAR-10、ImageNet 等。预训练模型如 ResNet、VGG、AlexNet 等。数据变换如图像调整大小、裁剪、归一化等。
示例代码
import torchvision.transforms as transforms
import torchvision.datasets as datasets# 定义数据预处理
transform transforms.Compose([transforms.Resize((32, 32)),transforms.ToTensor(),transforms.Normalize((0.5,), (0.5,))
])# 下载 MNIST 数据集
dataset datasets.MNIST(root./data, trainTrue, downloadTrue, transformtransform)
dataloader DataLoader(dataset, batch_size64, shuffleTrue)for images, labels in dataloader:print(images.shape, labels.shape)break6. torch.jit
核心功能
TorchScript通过脚本化和追踪将 Python 模型转换为 TorchScript 模型提高执行效率并支持跨平台部署。脚本化torch.jit.script 用于将 Python 代码转换为 TorchScript 代码。追踪torch.jit.trace 用于通过追踪模型的执行流程创建 TorchScript 模型。
示例代码
import torch.jit# 定义简单模型
class SimpleNet(nn.Module):def forward(self, x):return x * 2model SimpleNet()# 脚本化模型
scripted_model torch.jit.script(model)
print(scripted_model)# 追踪模型
traced_model torch.jit.trace(model, torch.randn(1, 10))
print(traced_model)7. torch.cuda
核心功能
设备管理提供与 GPU 相关的操作如设备计数、设备选择等。张量迁移将张量从 CPU 移动到 GPU以利用 GPU 加速计算。
示例代码
if torch.cuda.is_available():device torch.device(cuda)x torch.tensor([1.0, 2.0, 3.0]).to(device)print(fGPU tensor: {x})
else:print(CUDA is not available.)8. torch.autograd
核心功能
自动微分提供自动计算梯度的功能支持反向传播算法。计算图动态构建计算图并根据图计算梯度。
示例代码
x torch.tensor([1.0, 2.0, 3.0], requires_gradTrue)
y x 2
z y * y * 3
out z.mean()# 反向传播计算梯度
out.backward()
print(x.grad) # 输出 x 的梯度9. torch.multiprocessing
核心功能
多进程并行用于在多核 CPU 上实现数据并行和模型并行提高计算效率。与 Python 标准库 multiprocessing 的兼容提供与标准库相似的接口。
示例代码
import torch.multiprocessing as mpdef worker(rank, data):print(fWorker {rank} processing data: {data})if __name__ __main__:data [1, 2, 3, 4]mp.spawn(worker, args(data,), nprocs4)10. torch.distributed
核心功能
分布式训练支持在多个 GPU 和多台机器上进行分布式训练。通信接口提供多种通信后端如 Gloo、NCCL 等。
示例代码
import torch
import torch.distributed as distdef init_process(rank, size, fn, backendgloo):dist.init_process_group(backend, rankrank, world_sizesize)fn(rank, size)def example(rank, size):tensor torch.zeros(1)if rank 0:tensor 1dist.send(tensor, dst1)else:dist.recv(tensor, src0)print(fRank {rank} has data {tensor[0]})if __name__ __main__:size 2processes []for rank in range(size):p mp.Process(targetinit_process, args(rank, size, example))p.start()processes.append(p)for p in processes:p.join()通过这些模块PyTorch 提供了构建、训练、优化和部署深度学习模型所需的全面支持。