《Python深度学习基于Pytorch》学习笔记
发布人:shili8
发布时间:2024-01-30 16:06
阅读次数:52
Python深度学习基于Pytorch 学习笔记在学习Python深度学习基于Pytorch的过程中,我发现Pytorch是一个非常强大的深度学习框架,它提供了丰富的工具和库,可以帮助我们快速构建和训练深度学习模型。下面是我在学习过程中的一些笔记和代码示例。
1. 安装Pytorch首先,我们需要安装Pytorch。可以通过以下命令来安装Pytorch:
pip install torch torchvision
2. 创建一个简单的神经网络模型接下来,我们可以创建一个简单的神经网络模型。下面是一个简单的全连接神经网络模型的代码示例:
import torchimport torch.nn as nnimport torch.nn.functional as Fclass SimpleNet(nn.Module): def __init__(self): super(SimpleNet, self).__init__() self.fc1 = nn.Linear(784,128) self.fc2 = nn.Linear(128,10) def forward(self, x): x = x.view(-1,784) x = F.relu(self.fc1(x)) x = self.fc2(x) return F.log_softmax(x, dim=1)
在这个代码示例中,我们定义了一个名为SimpleNet的神经网络模型,它包含两个全连接层。在forward方法中,我们首先将输入的数据x进行reshape,然后经过第一个全连接层和激活函数ReLU,最后经过第二个全连接层和log_softmax函数得到输出。
3. 加载数据集和训练模型接下来,我们可以加载数据集并训练我们的模型。下面是一个简单的代码示例:
import torchvisionimport torchvision.transforms as transformstransform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5,0.5,0.5), (0.5,0.5,0.5))]) trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform) trainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=True, num_workers=2) net = SimpleNet() criterion = nn.CrossEntropyLoss() optimizer = torch.optim.SGD(net.parameters(), lr=0.001, momentum=0.9) for epoch in range(2): # loop over the dataset multiple times running_loss =0.0 for i, data in enumerate(trainloader,0): inputs, labels = data optimizer.zero_grad() outputs = net(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() if i %2000 ==1999: # print every2000 mini-batches print('[%d, %5d] loss: %.3f' % (epoch +1, i +1, running_loss /2000)) running_loss =0.0print('Finished Training')
在这个代码示例中,我们首先定义了数据集的transform,然后加载了MNIST数据集,并创建了一个数据加载器trainloader。接着我们创建了一个SimpleNet的实例net,并定义了损失函数和优化器。然后我们进行了多次的训练迭代,每次迭代中都计算了损失并更新了模型参数。
通过这些学习笔记和代码示例,我对Python深度学习基于Pytorch有了更深入的理解,我相信在接下来的学习和实践中,我能够更好地应用Pytorch来构建和训练深度学习模型。