torch是PyTorch深度学习框架中最核心的模块之一,它提供了很多在深度学习中常用的数据结构和操作函数,可以方便地进行模型构建、训练和测试等。
以下是torch的一些基本用法:
1.张量(Tensor)的创建和操作:
pythonCopy code
import torch # 创建一个大小为(2, 3)的张量 x = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(x)# 张量的加法 y = torch.tensor([[7, 8, 9], [10, 11, 12]]) z = x + y print(z) # 张量的乘法 w = x * y print(w)
2.模型的构建:
pythonCopy code
import torch import torch.nn as nn # 定义一个简单的全连接神经网络 class Net(nn.Module): def__init__(self): super(Net, self).__init__() self.fc1 = nn.Linear(10, 20) self.fc2 = nn.Linear(20, 2) def forward(self, x): x = torch.relu(self.fc1(x)) x = self.fc2(x) returnx # 创建一个Net实例 net = Net() print(net)
3.损失函数和优化器:
pythonCopy code
import torch import torch.nn as nn import torch.optim as optim # 定义一个简单的全连接神经网络class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.fc1 = nn.Linear(10, 20) self.fc2 = nn.Linear(20, 2) def forward(self, x): x = torch.relu(self.fc1(x)) x = self.fc2(x) return x # 创建一个Net实例 net = Net() # 定义损失函数和优化器 criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(net.parameters(), lr=0.01, momentum=0.9) # 在一个批次上进行模型的训练 inputs = torch.randn(32, 10) labels = torch.randint(0, 2, (32,)) optimizer.zero_grad() outputs = net(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step()