Pytorch教程

PyTorch Convents简介

PyTorch Convents简介详细操作教程
Convents就是从 scratch 构建CNN模型。网络架构将包含以下步骤的组合 -
Conv2d MaxPool2d 整流线性单元 视图 线性层

训练模型

训练模型与图像分类问题相同。以下代码段完成了对提供的数据集的训练模型的过程 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-23
def fit(epoch,model,data_loader,phase
= 'training',volatile = False):
   if phase == 'training':
      model.train()
   if phase == 'training':
      model.train()
   if phase == 'validation':
      model.eval()
   volatile=True
   running_loss = 0.0
   running_correct = 0
   for batch_idx , (data,target) in enumerate(data_loader):
      if is_cuda:
         data,target = data.cuda(),target.cuda()
         data , target = Variable(data,volatile),Variable(target)
      if phase == 'training':
         optimizer.zero_grad()
         output = model(data)
         loss = F.nll_loss(output,target)
         running_loss + =
         F.nll_loss(output,target,size_average =
         False).data[0]
         preds = output.data.max(dim = 1,keepdim = True)[1]
         running_correct + =
         preds.eq(target.data.view_as(preds)).cpu().sum()
         if phase == 'training':
            loss.backward()
            optimizer.step()
   loss = running_loss/len(data_loader.dataset)
   accuracy = 100. * running_correct/len(data_loader.dataset)
   print(f'{phase} loss is {loss:{5}.{2}} and {phase} accuracy is {running_correct}/{len(data_loader.dataset)}{accuracy:{return loss,accuracy}}')
此方法包括用于训练和验证的不同逻辑。使用不同模式有两个主要原因 -
在训练模式中,丢失会删除一定百分比的值,这在验证或测试阶段不应发生。 对于训练模式,计算梯度并更改模型的参数值,但在测试或验证阶段不需要反向传播。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4