Calculating evaluation metrics!

am I missing something? Because even using the ResNet50 model the accuracy is not improving.

def evaluate(model, iterator, criterion, device):
    epoch_loss = 0
    epoch_acc_1 = 0
    total = 0
    model.eval()
    with torch.no_grad():
        for (x, y) in iterator:
            x = x.to(device)
            y = y.to(device)
            y_pred = model(x)
            loss = criterion(y_pred, y)
            _, predicted = torch.max(y_pred.data, 1)
            total += y.size(0)
            epoch_acc_1 += (predicted == y).float().sum()
            epoch_loss += loss.item()       
    epoch_loss /= len(iterator)
    epoch_acc_1 /= total   
    return epoch_loss, epoch_acc_1

def epoch_time(start_time, end_time):
    elapsed_time = end_time - start_time
    elapsed_mins = int(elapsed_time / 60)
    elapsed_secs = int(elapsed_time - (elapsed_mins * 60))
    return elapsed_mins, elapsed_secs