PyTorch - 26 - CNN训练循环说明 - 神经网络代码项目

本文详细介绍了PyTorch中CNN的训练过程,包括单批训练、整批训练(单个epoch)、多个epoch的训练以及完整的训练循环。通过实例展示了数据准备、模型建立、训练与分析,揭示了不同batch_size对权重更新次数的影响,同时预告了后续将展示训练结果的可视化。
摘要由CSDN通过智能技术生成

Training With A Single Batch

在上一集中,我们了解到训练过程是一个迭代过程,并且为了训练神经网络,我们建立了所谓的训练循环。

  1. 准备数据
  2. 建立模型
  3. 训练模型
    a. 建立训练循环
  4. 分析模型的结果

我们可以通过以下方式总结用于单批训练的代码:

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

您会注意到的一件事是,每次运行此代码时࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值