莱芜融媒体中心网站,wordpress主题 双站点,小程序服务商,建设官网公司地址欢迎阅读这份有关 PyTorch 原理的简明指南[1]。无论您是初学者还是有一定经验#xff0c;了解这些原则都可以让您的旅程更加顺利。让我们开始吧#xff01; 1. 张量#xff1a;构建模块 PyTorch 中的张量是多维数组。它们与 NumPy 的 ndarray 类似#xff0c;但可以在 GPU … 欢迎阅读这份有关 PyTorch 原理的简明指南[1]。无论您是初学者还是有一定经验了解这些原则都可以让您的旅程更加顺利。让我们开始吧 1. 张量构建模块 PyTorch 中的张量是多维数组。它们与 NumPy 的 ndarray 类似但可以在 GPU 上运行。 import torch# Create a 2x3 tensortensor torch.tensor([[1, 2, 3], [4, 5, 6]])print(tensor) 2. 动态计算图 PyTorch 使用动态计算图这意味着该图是在执行操作时即时构建的。这为在运行时修改图形提供了灵活性。 # Define two tensorsa torch.tensor([2.], requires_gradTrue)b torch.tensor([3.], requires_gradTrue)# Compute resultc a * bc.backward()# Gradientsprint(a.grad) # Gradient w.r.t a 3.GPU加速 PyTorch 允许在 CPU 和 GPU 之间轻松切换。利用 .to(device) 获得最佳性能。 device cuda if torch.cuda.is_available() else cputensor tensor.to(device) 4. Autograd自动微分 PyTorch 的 autograd 为张量上的所有操作提供自动微分。设置 require_gradTrue 来跟踪计算。 x torch.tensor([2.], requires_gradTrue)y x**2y.backward()print(x.grad) # Gradient of y w.r.t x 5. 带有 nn.Module 的模块化神经网络 PyTorch 提供 nn.Module 类来定义神经网络架构。通过子类化创建自定义层。 import torch.nn as nnclass SimpleNN(nn.Module): def __init__(self): super().__init__() self.fc nn.Linear(1, 1) def forward(self, x): return self.fc(x) 6. 预定义层和损失函数 PyTorch 在 nn 模块中提供了各种预定义层、损失函数和优化算法。 loss_fn nn.CrossEntropyLoss()optimizer torch.optim.Adam(model.parameters(), lr0.001) 7. 数据集和DataLoader 为了高效的数据处理和批处理PyTorch 提供了 Dataset 和 DataLoader 类。 from torch.utils.data import Dataset, DataLoaderclass CustomDataset(Dataset): # ... (methods to define) data_loader DataLoader(dataset, batch_size32, shuffleTrue) 8.模型训练循环 通常PyTorch 中的训练遵循以下模式前向传递、计算损失、后向传递和参数更新。 for epoch in range(epochs): for data, target in data_loader: optimizer.zero_grad() output model(data) loss loss_fn(output, target) loss.backward() optimizer.step() 9. 模型序列化 使用 torch.save() 和 torch.load() 保存和加载模型。 # Savetorch.save(model.state_dict(), model_weights.pth)# Loadmodel.load_state_dict(torch.load(model_weights.pth)) 10. Eager Execution and JIT 虽然 PyTorch 默认情况下以 eager 模式运行但它为生产就绪模型提供即时 (JIT) 编译。 scripted_model torch.jit.script(model)scripted_model.save(model_jit.pt) Reference [1] Source: https://medium.com/kasperjuunge/10-principles-of-pytorch-bbe4bf0c42cd 本文由 mdnice 多平台发布