Getting very less test accuracy for ImageNet Dataset

Here I chose 20 Classes from the ImageNet Dataset and trained it with finetuned VGG16 model.
The training accuracy is increasing but the test accuracy is not increasing.
The following code is used for this purpose:
[Note:- I attached the output log at the end of this code.]

import torch
import torchvision
from torchvision import datasets
import torchvision.transforms as transforms
import os
from model.vgg import *

import sys
file=open('output.txt','a')
sys.stdout=file



ImageNetTrain="/home/students/soumyajit_po/hsd_cnn_code/SOUMYA/ImagenetData/twentyClasses/Imagenet_Sample/train"

ImageNetVal="/home/students/soumyajit_po/hsd_cnn_code/SOUMYA/ImagenetData/twentyClasses/Imagenet_Sample/val"

transform_train = transforms.Compose([transforms.Resize(256),transforms.CenterCrop(224),transforms.ToTensor(),transforms.Normalize((0.485, 0.456, 0.406), (0.229,0.224,0.225)),])

trainset=torchvision.datasets.ImageFolder(root=ImageNetTrain,transform=transform_train)
trainloader=torch.utils.data.DataLoader(trainset,batch_size=256,shuffle=False,num_workers=8,pin_memory=True)

transform_test = transforms.Compose([transforms.Resize(256),transforms.CenterCrop(224),transforms.ToTensor(),transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)),])

testset=torchvision.datasets.ImageFolder(root=ImageNetVal,transform=transform_test)
testloader=torch.utils.data.DataLoader(testset,batch_size=256,shuffle=False,num_workers=8,pin_memory=True)

import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
import matplotlib.pyplot as plt
device=torch.device("cuda:1" if torch.cuda.is_available() else "cpu")
#print("device:",device
model=cifar_vgg_net
print(model)
print("device:",device)
#for param in model.parameters():
#  param.requires_grad=True

class AverageMeter(object):
    def __init__(self):
        self.reset()
    def reset(self):
        self.val=0
        self.avg=0
        self.SUM=0
        self.count=0
    def update(self,val,n=1):
        self.val=val
        self.SUM+=val*n
        self.count+=n
        self.avg=self.SUM/self.count

def accuracy(output,target,topk=(1,)):
#"""Computes the accuracy over the k top predictions for the specified values of k"""
    with torch.no_grad():
         maxk=max(topk)
         batch_size=target.size(0)
         _,pred=output.topk(maxk,1,True,True)
         pred=torch.transpose(pred,0,1)
         correct=pred.eq(target.view(1,-1).expand_as(pred))

         res=[]
         for k in topk:
             correct_k=correct[:k].view(-1).float().sum(0,keepdim=True)
             res.append(correct_k.mul_(100.0/batch_size))
         return res


PATH='./checkpoint/vggImageNet.pth.tar'
#batch_size=128
num_epochs=75
model.to(device)
criterion=nn.CrossEntropyLoss()
#optimizer=optim.Adam(model.parameters(),lr=0.0001)
optimizer=optim.SGD(model.vggnet.parameters(),0.001,momentum=0.9)

torch.cuda.empty_cache()
#print("cleared")
globaliter=-1
best_accuracy=0
trainLOSS=[]
testACC=[]
testLOSS=[]
avg_train=0
avg_test_loss=0
for epoch in range(num_epochs):
    globaliter+=1
    running_loss=0
    total=0
    avg_train=0
    correct_classified=0
    model.train()
    for i,(inputs,labels) in enumerate(trainloader):
        inputs=inputs.to(device)
        labels=labels.to(device)
        optimizer.zero_grad()
        outputs=model(inputs)
        loss=criterion(outputs,labels)
        loss.backward()
        optimizer.step()
        predicted=torch.argmax(outputs,1)
        total+=labels.size(0)
        correct_classified+=(predicted==labels).sum().item()
        running_loss+=loss.item()
        if i%200==199:
          #avg_loss=running_loss/200
          print('Epoch:[%d, %5d] ' % (epoch+1,i+1))
          #tb.save_value('Train Loss','train_loss',globaliter,loss.item())
        
    train_acc=100*(correct_classified/total)
    avg_train=float(running_loss)/total    
    trainLOSS.append(avg_train)    
        
    print('Train Accuracy:%.3f'%(train_acc))
    print('Train Average Loss:%.4f'%(avg_train))
    
    c=0
    total=0
    globaliter=-1
    l=0
    j=-1
    top1=AverageMeter()
    top5=AverageMeter()
    model.eval()
    with torch.no_grad():
      for data in testloader:
        globaliter+=1
        j=j+1
        inputs,labels=data
        inputs,labels=inputs.to(device),labels.to(device)
        optimizer.zero_grad()
        outputs=model(inputs)
        loss=criterion(outputs,labels)
        l=l+loss.item()
        predicted=torch.argmax(outputs,1)
        total+=labels.size(0)
        c+=(predicted==labels).sum().item()
        acc1,acc5=accuracy(outputs,labels,topk=(1,5))
        top1.update(acc1[0],inputs.size(0))
        top5.update(acc5[0],inputs.size(0))        
        #if j%200==199:
          #testLOSS.append(loss.item())
          #tb.save_value('Validation Loss','validation_loss',globaliter,loss.item())
    test_acc=(100*c/total)
    if(test_acc>best_accuracy):
        best_accuracy=test_acc
        print('Saving...')
        state={'net':model,'acc':best_accuracy,'epoch':epoch}
       # state={'state_dict':model.state_dict(),'optimizer':optimizer.state_dict(),'epoch':epoch,'acc':best_accuracy}
        if not os.path.isdir('checkpoint'):
           os.mkdir('checkpoint')
        torch.save(state,PATH)
       # torch.save(model,PATH)
       # torch.save(model.state_dict(),PATH)
    print('Accuracy of the network on test images:%.3f %%' % test_acc)
    print('Top1 accuracy:%.3f %%',top1.avg)
    print('Top5 accuracy:%.3f %%',top5.avg)

    testACC.append(test_acc)
    avg_test_loss=float(l)/total
    testLOSS.append(avg_test_loss)
    fig1 = plt.figure(1)        
    plt.plot(range(epoch+1),trainLOSS,'r-',label='train loss')
    plt.plot(range(epoch+1),testLOSS,'g-',label='test loss')
    if epoch==0:
      plt.legend(loc='upper left')
      plt.xlabel('Epochs')
      plt.ylabel('Loss')
    fig2 = plt.figure(2)        
    plt.plot(range(epoch+1),testACC,'g-',label='test')        
    if epoch==0:
      plt.legend(loc='upper left')
      plt.xlabel('Epochs')
      plt.ylabel('Testing Accuracy')    
              
print('Best Accuracy of the network on test images:%.3f %%'% best_accuracy)
fig1.savefig('trainloss_vs_epoch.png')
fig2.savefig('testacc_vs_epoch.png')

file.close()

OUTPUT LOG:

Epoch:[1,   200] 
Epoch:[1,   400] 
Epoch:[1,   600] 
Epoch:[1,   800] 
Train Accuracy:53.731
Train Average Loss:0.0661
Saving...
Accuracy of the network on test images:5.000 %
Top1 accuracy:%.3f %% tensor(5., device='cuda:1')
Top5 accuracy:%.3f %% tensor(32.6000, device='cuda:1')
Epoch:[2,   200] 
Epoch:[2,   400] 
Epoch:[2,   600] 
Epoch:[2,   800] 
Train Accuracy:61.538
Train Average Loss:0.0605
Accuracy of the network on test images:5.000 %
Top1 accuracy:%.3f %% tensor(5., device='cuda:1')
Top5 accuracy:%.3f %% tensor(43.9000, device='cuda:1')
Epoch:[3,   200] 
Epoch:[3,   400] 
Epoch:[3,   600] 
Epoch:[3,   800] 
Train Accuracy:71.985
Train Average Loss:0.0460
Accuracy of the network on test images:5.000 %
Top1 accuracy:%.3f %% tensor(5., device='cuda:1')
Top5 accuracy:%.3f %% tensor(55.2000, device='cuda:1')
Epoch:[4,   200] 
Epoch:[4,   400] 
Epoch:[4,   600] 
Epoch:[4,   800] 
Train Accuracy:75.273
Train Average Loss:0.0409
Accuracy of the network on test images:5.000 %
Top1 accuracy:%.3f %% tensor(5., device='cuda:1')
Top5 accuracy:%.3f %% tensor(38.2000, device='cuda:1')
Epoch:[5,   200] 
Epoch:[5,   400] 
Epoch:[5,   600] 
Epoch:[5,   800] 
Train Accuracy:73.815
Train Average Loss:0.0407
Saving...
Accuracy of the network on test images:6.100 %
Top1 accuracy:%.3f %% tensor(6.1000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(59.5000, device='cuda:1')
Epoch:[6,   200] 
Epoch:[6,   400] 
Epoch:[6,   600] 
Epoch:[6,   800] 
Train Accuracy:74.842
Train Average Loss:0.0384
Accuracy of the network on test images:5.200 %
Top1 accuracy:%.3f %% tensor(5.2000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(46.0000, device='cuda:1')
Epoch:[7,   200] 
Epoch:[7,   400] 
Epoch:[7,   600] 
Epoch:[7,   800] 
Train Accuracy:75.823
Train Average Loss:0.0329
Saving...
Accuracy of the network on test images:8.700 %
Top1 accuracy:%.3f %% tensor(8.7000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(69.8000, device='cuda:1')
Epoch:[8,   200] 
Epoch:[8,   400] 
Epoch:[8,   600] 
Epoch:[8,   800] 
Train Accuracy:78.365
Train Average Loss:0.0281
Saving...
Accuracy of the network on test images:18.800 %
Top1 accuracy:%.3f %% tensor(18.8000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(65.2000, device='cuda:1')
Epoch:[9,   200] 
Epoch:[9,   400] 
Epoch:[9,   600] 
Epoch:[9,   800] 
Train Accuracy:82.696
Train Average Loss:0.0196
Accuracy of the network on test images:11.600 %
Top1 accuracy:%.3f %% tensor(11.6000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(59.7000, device='cuda:1')
Epoch:[10,   200] 
Epoch:[10,   400] 
Epoch:[10,   600] 
Epoch:[10,   800] 
Train Accuracy:87.354
Train Average Loss:0.0134
Accuracy of the network on test images:10.200 %
Top1 accuracy:%.3f %% tensor(10.2000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(55.4000, device='cuda:1')
Epoch:[11,   200] 
Epoch:[11,   400] 
Epoch:[11,   600] 
Epoch:[11,   800] 
Train Accuracy:90.804
Train Average Loss:0.0094
Accuracy of the network on test images:10.100 %
Top1 accuracy:%.3f %% tensor(10.1000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(49.9000, device='cuda:1')
Epoch:[12,   200] 
Epoch:[12,   400] 
Epoch:[12,   600] 
Epoch:[12,   800] 
Train Accuracy:93.988
Train Average Loss:0.0061
Accuracy of the network on test images:10.800 %
Top1 accuracy:%.3f %% tensor(10.8000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(43.7000, device='cuda:1')
Epoch:[13,   200] 
Epoch:[13,   400] 
Epoch:[13,   600] 
Epoch:[13,   800] 
Train Accuracy:96.496
Train Average Loss:0.0039
Accuracy of the network on test images:11.900 %
Top1 accuracy:%.3f %% tensor(11.9000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(44.6000, device='cuda:1')
Epoch:[14,   200] 
Epoch:[14,   400] 
Epoch:[14,   600] 
Epoch:[14,   800] 
Train Accuracy:97.942
Train Average Loss:0.0027
Accuracy of the network on test images:12.800 %
Top1 accuracy:%.3f %% tensor(12.8000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(44.5000, device='cuda:1')
Epoch:[15,   200] 
Epoch:[15,   400] 
Epoch:[15,   600] 
Epoch:[15,   800] 
Train Accuracy:98.646
Train Average Loss:0.0019
Accuracy of the network on test images:13.500 %
Top1 accuracy:%.3f %% tensor(13.5000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(43.6000, device='cuda:1')
Epoch:[16,   200] 
Epoch:[16,   400] 
Epoch:[16,   600] 
Epoch:[16,   800] 
Train Accuracy:98.958
Train Average Loss:0.0015
Accuracy of the network on test images:10.700 %
Top1 accuracy:%.3f %% tensor(10.7000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(39.9000, device='cuda:1')
Epoch:[17,   200] 
Epoch:[17,   400] 
Epoch:[17,   600] 
Epoch:[17,   800] 
Train Accuracy:98.950
Train Average Loss:0.0015
Accuracy of the network on test images:11.500 %
Top1 accuracy:%.3f %% tensor(11.5000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(39.7000, device='cuda:1')
Epoch:[18,   200] 
Epoch:[18,   400] 
Epoch:[18,   600] 
Epoch:[18,   800] 
Train Accuracy:99.385
Train Average Loss:0.0010
Accuracy of the network on test images:11.600 %
Top1 accuracy:%.3f %% tensor(11.6000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(39.1000, device='cuda:1')
Epoch:[19,   200] 
Epoch:[19,   400] 
Epoch:[19,   600] 
Epoch:[19,   800] 
Train Accuracy:99.504
Train Average Loss:0.0009
Accuracy of the network on test images:14.100 %
Top1 accuracy:%.3f %% tensor(14.1000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(41.5000, device='cuda:1')
Epoch:[20,   200] 
Epoch:[20,   400] 
Epoch:[20,   600] 
Epoch:[20,   800] 
Train Accuracy:99.777
Train Average Loss:0.0006
Accuracy of the network on test images:14.500 %
Top1 accuracy:%.3f %% tensor(14.5000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(43.8000, device='cuda:1')
Epoch:[21,   200] 
Epoch:[21,   400] 
Epoch:[21,   600] 
Epoch:[21,   800] 
Train Accuracy:99.788
Train Average Loss:0.0005
Accuracy of the network on test images:13.400 %
Top1 accuracy:%.3f %% tensor(13.4000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(42.8000, device='cuda:1')
Epoch:[22,   200] 
Epoch:[22,   400] 
Epoch:[22,   600] 
Epoch:[22,   800] 
Train Accuracy:99.908
Train Average Loss:0.0004
Accuracy of the network on test images:14.500 %
Top1 accuracy:%.3f %% tensor(14.5000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(47.6000, device='cuda:1')
Epoch:[23,   200] 
Epoch:[23,   400] 
Epoch:[23,   600] 
Epoch:[23,   800] 
Train Accuracy:98.427
Train Average Loss:0.0031
Accuracy of the network on test images:12.800 %
Top1 accuracy:%.3f %% tensor(12.8000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(50.5000, device='cuda:1')
Epoch:[24,   200] 
Epoch:[24,   400] 
Epoch:[24,   600] 
Epoch:[24,   800] 
Train Accuracy:96.850
Train Average Loss:0.0050
Accuracy of the network on test images:15.400 %
Top1 accuracy:%.3f %% tensor(15.4000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(55.0000, device='cuda:1')
Epoch:[25,   200] 
Epoch:[25,   400] 
Epoch:[25,   600] 
Epoch:[25,   800] 
Train Accuracy:98.850
Train Average Loss:0.0017
Accuracy of the network on test images:16.900 %
Top1 accuracy:%.3f %% tensor(16.9000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(54.8000, device='cuda:1')
Epoch:[26,   200] 
Epoch:[26,   400] 
Epoch:[26,   600] 
Epoch:[26,   800] 
Train Accuracy:99.246
Train Average Loss:0.0011
Accuracy of the network on test images:18.100 %
Top1 accuracy:%.3f %% tensor(18.1000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(56.4000, device='cuda:1')
Epoch:[27,   200] 
Epoch:[27,   400] 
Epoch:[27,   600] 
Epoch:[27,   800] 
Train Accuracy:99.469
Train Average Loss:0.0008
Accuracy of the network on test images:17.000 %
Top1 accuracy:%.3f %% tensor(17., device='cuda:1')
Top5 accuracy:%.3f %% tensor(51.5000, device='cuda:1')
Epoch:[28,   200] 
Epoch:[28,   400] 
Epoch:[28,   600] 
Epoch:[28,   800] 
Train Accuracy:99.812
Train Average Loss:0.0004
Accuracy of the network on test images:17.100 %
Top1 accuracy:%.3f %% tensor(17.1000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(50.9000, device='cuda:1')
Epoch:[29,   200] 
Epoch:[29,   400] 
Epoch:[29,   600] 
Epoch:[29,   800] 
Train Accuracy:99.896
Train Average Loss:0.0003
Accuracy of the network on test images:16.400 %
Top1 accuracy:%.3f %% tensor(16.4000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(48.7000, device='cuda:1')
Epoch:[30,   200] 
Epoch:[30,   400] 
Epoch:[30,   600] 
Epoch:[30,   800] 
Train Accuracy:100.000
Train Average Loss:0.0002
Accuracy of the network on test images:15.900 %
Top1 accuracy:%.3f %% tensor(15.9000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(47.2000, device='cuda:1')
Epoch:[31,   200] 
Epoch:[31,   400] 
Epoch:[31,   600] 
Epoch:[31,   800] 
Train Accuracy:99.977
Train Average Loss:0.0002
Accuracy of the network on test images:16.100 %
Top1 accuracy:%.3f %% tensor(16.1000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(47.2000, device='cuda:1')
Epoch:[32,   200] 
Epoch:[32,   400] 
Epoch:[32,   600] 
Epoch:[32,   800] 
Train Accuracy:99.988
Train Average Loss:0.0001
Accuracy of the network on test images:15.100 %
Top1 accuracy:%.3f %% tensor(15.1000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(45.8000, device='cuda:1')
Epoch:[33,   200] 
Epoch:[33,   400] 
Epoch:[33,   600] 
Epoch:[33,   800] 
Train Accuracy:99.973
Train Average Loss:0.0001
Accuracy of the network on test images:14.100 %
Top1 accuracy:%.3f %% tensor(14.1000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(45.3000, device='cuda:1')
Epoch:[34,   200] 
Epoch:[34,   400] 
Epoch:[34,   600] 
Epoch:[34,   800] 
Train Accuracy:99.942
Train Average Loss:0.0001
Accuracy of the network on test images:13.800 %
Top1 accuracy:%.3f %% tensor(13.8000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(45.3000, device='cuda:1')
Epoch:[35,   200] 
Epoch:[35,   400] 
Epoch:[35,   600] 
Epoch:[35,   800] 
Train Accuracy:99.942
Train Average Loss:0.0001
Accuracy of the network on test images:13.200 %
Top1 accuracy:%.3f %% tensor(13.2000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(44.5000, device='cuda:1')
Epoch:[36,   200] 
Epoch:[36,   400] 
Epoch:[36,   600] 
Epoch:[36,   800] 
Train Accuracy:99.950
Train Average Loss:0.0001
Accuracy of the network on test images:14.800 %
Top1 accuracy:%.3f %% tensor(14.8000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(47.9000, device='cuda:1')
Epoch:[37,   200] 
Epoch:[37,   400] 
Epoch:[37,   600] 
Epoch:[37,   800] 
Train Accuracy:99.954
Train Average Loss:0.0001
Accuracy of the network on test images:13.800 %
Top1 accuracy:%.3f %% tensor(13.8000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(45.3000, device='cuda:1')
Epoch:[38,   200] 
Epoch:[38,   400] 
Epoch:[38,   600] 
Epoch:[38,   800] 
Train Accuracy:99.988
Train Average Loss:0.0001
Accuracy of the network on test images:13.700 %
Top1 accuracy:%.3f %% tensor(13.7000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(43.8000, device='cuda:1')
Epoch:[39,   200] 
Epoch:[39,   400] 
Epoch:[39,   600] 
Epoch:[39,   800] 
Train Accuracy:99.977
Train Average Loss:0.0001
Accuracy of the network on test images:13.100 %
Top1 accuracy:%.3f %% tensor(13.1000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(42.5000, device='cuda:1')
Epoch:[40,   200] 
Epoch:[40,   400] 
Epoch:[40,   600] 
Epoch:[40,   800] 
Train Accuracy:99.996
Train Average Loss:0.0000
Accuracy of the network on test images:12.700 %
Top1 accuracy:%.3f %% tensor(12.7000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(41.6000, device='cuda:1')
Epoch:[41,   200] 
Epoch:[41,   400] 
Epoch:[41,   600] 
Epoch:[41,   800] 
Train Accuracy:100.000
Train Average Loss:0.0000
Accuracy of the network on test images:13.000 %
Top1 accuracy:%.3f %% tensor(13.0000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(41.9000, device='cuda:1')
Epoch:[42,   200] 
Epoch:[42,   400] 
Epoch:[42,   600] 
Epoch:[42,   800] 
Train Accuracy:100.000
Train Average Loss:0.0000
Accuracy of the network on test images:12.700 %
Top1 accuracy:%.3f %% tensor(12.7000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(41.5000, device='cuda:1')
Epoch:[43,   200] 
Epoch:[43,   400] 
Epoch:[43,   600] 
Epoch:[43,   800] 
Train Accuracy:100.000
Train Average Loss:0.0000
Accuracy of the network on test images:12.600 %
Top1 accuracy:%.3f %% tensor(12.6000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(41.6000, device='cuda:1')
Epoch:[44,   200] 
Epoch:[44,   400] 
Epoch:[44,   600] 
Epoch:[44,   800] 
Train Accuracy:100.000
Train Average Loss:0.0000
Accuracy of the network on test images:12.500 %
Top1 accuracy:%.3f %% tensor(12.5000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(41.5000, device='cuda:1')
Epoch:[45,   200] 
Epoch:[45,   400] 
Epoch:[45,   600] 
Epoch:[45,   800] 
Train Accuracy:100.000
Train Average Loss:0.0000
Accuracy of the network on test images:12.500 %
Top1 accuracy:%.3f %% tensor(12.5000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(41.5000, device='cuda:1')
Epoch:[46,   200] 
Epoch:[46,   400] 
Epoch:[46,   600] 
Epoch:[46,   800] 
Train Accuracy:100.000
Train Average Loss:0.0000
Accuracy of the network on test images:12.500 %
Top1 accuracy:%.3f %% tensor(12.5000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(41.4000, device='cuda:1')
Epoch:[47,   200] 
Epoch:[47,   400] 
Epoch:[47,   600] 
Epoch:[47,   800] 
Train Accuracy:100.000
Train Average Loss:0.0000
Accuracy of the network on test images:12.300 %
Top1 accuracy:%.3f %% tensor(12.3000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(41.3000, device='cuda:1')
Epoch:[48,   200] 
Epoch:[48,   400] 
Epoch:[48,   600] 
Epoch:[48,   800] 
Train Accuracy:100.000
Train Average Loss:0.0000
Accuracy of the network on test images:12.100 %
Top1 accuracy:%.3f %% tensor(12.1000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(41.1000, device='cuda:1')
Epoch:[49,   200] 
Epoch:[49,   400] 
Epoch:[49,   600] 
Epoch:[49,   800] 
Train Accuracy:100.000
Train Average Loss:0.0000
Accuracy of the network on test images:12.100 %
Top1 accuracy:%.3f %% tensor(12.1000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(41.0000, device='cuda:1')
Epoch:[50,   200] 
Epoch:[50,   400] 
Epoch:[50,   600] 
Epoch:[50,   800] 
Train Accuracy:100.000
Train Average Loss:0.0000
Accuracy of the network on test images:12.100 %
Top1 accuracy:%.3f %% tensor(12.1000, device='cuda:1')
Top5 accuracy:%.3f %% tensor(40.9000, device='cuda:1')

Following are the graphs train loss and test loss vs epoch and testaccuracy vs epoch

trainloss_vs_epoch

testacc_vs_epoch

Why is the test accuracy so less and also so varying???
Also why is the test loss so high?

Any suggestions will be helpful.