English 中文(简体)
PyTorch - Introduction to Convents
  • 时间:2024-12-22

PyTorch - Introduction to Convents


Previous Page Next Page  

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 pke 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 ==  vapdation :
      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 vapdation. There are two primary reasons for using different modes −

    In train mode, dropout removes a percentage of values, which should not happen in the vapdation 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 vapdation phases.

Advertisements