PyTorch是一个流行的python深度学习库,它提供了高效的张量操作和神经网络实现。
张量: 张量是PyTorch中用来表示多维数组的结构,它可以存储各种数据类型,如浮点、整数、布尔值等。PyTorch提供了多种创建张量的方法,最常见的方法是使用torch.Tensor()函数。例如:
import torch#创建张量x = torch.Tensor([1, 2, 3])print(x)#张量的类型print(x.dtype)#张量的维度print(x.ndim)#张量的形状print(x.shape)
神经网络: 神经网络是一种机器学习模型,它可以从数据中学习并进行预测。PyTorch提供了多种神经网络层,如线性层、卷积层、池化层等,这些层可以组合起来形成复杂的神经网络模型。
#创建一个简单的神经网络import torch#定义网络class Net(torch.nn.Module): def __init__(self): super(Net, self).__init__() self.fc1 = torch.nn.Linear(2, 2) self.fc2 = torch.nn.Linear(2, 1) def forward(self, x): x = torch.relu(self.fc1(x)) x = torch.sigmoid(self.fc2(x)) return x#实例化网络net = Net() print(net)
优化器: 优化器是用来更新神经网络权值的一种算法,它可以使神经网络在训练过程中不断优化,从而提高预测精度。PyTorch提供了多种优化器,如随机梯度下降(SGD)、Adam、RMSProp等。
#创建损失函数和优化器criterion = torch.nn.MSELoss() optimizer = torch.optim.SGD(net.parameters(), lr=0.1)#训练网络for epoch in range(1000): #前向传播 outputs = net(x) #计算损失 loss = criterion(outputs, y) #反向传播 loss.backward() #更新权值 optimizer.step() #清零梯度 optimizer.zero_grad()
损失函数: 损失函数是用来评估神经网络预测结果与真实结果之间的差异,它可以指导神经网络在训练过程中不断优化。PyTorch提供了多种损失函数,如均方误差(MSE)、交叉熵(CE)等。
#定义损失函数criterion = torch.nn.MSELoss()#计算损失loss = criterion(outputs, y)#反向传播loss.backward()#更新权值optimizer.step()