PyTorch – Introduction to Convents

PyTorch Introduction to Convents

In this guide, we will discuss Introduction to Convents in PyTorch. Convents is all about building the CNN model from scratch. The network architecture will contain a combination of following steps โˆ’

  • Conv2d
  • MaxPool2d
  • Rectified Linear Unit
  • View
  • Linear Layer

Training the Model

Training the model is the same process like image classification problems. The following code snippet completes the procedure of a training model on the provided dataset โˆ’

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}})

The method includes different logic for training and validation. There are two primary reasons for using different modes โˆ’

  • In train mode, dropout removes a percentage of values, which should not happen in the validation or testing phase.
  • For training mode, we calculate gradients and change the model’s parameters value, but back propagation is not required during the testing or validation phases.

Next Topic : Click Here

This Post Has One Comment

Leave a Reply