PyTorch - 26 - CNN训练循环说明 - 神经网络代码项目
Training With A Single Batch
在上一集中,我们了解到训练过程是一个迭代过程,并且为了训练神经网络,我们建立了所谓的训练循环。
- 准备数据
- 建立模型
- 训练模型
a. 建立训练循环 - 分析模型的结果
我们可以通过以下方式总结用于单批训练的代码:
network = Network()
train_loader = torch.utils.data.DataLoader(train_set, batch_size=100)
optimizer = optim.Adam(network.parameters(), lr=0.01)
batch = next(iter(train_loader)) # Get Batch
images, labels = batch
preds = network(images) # Pass Batch
loss = F.cross_entropy(preds, labels) # Calculate Loss
loss.backward() # Calculate Gradients
optimizer.step() # Update Weights
print('loss1:', loss.item())
preds = network(images)
loss = F.cross_entropy(preds, labels)
print('loss2:', loss.item())
输出:
loss1: 2.3034827709198
loss2: 2.2825052738189697
您会注意到的一件事是,每次运行此代码时