Here is my code with model.train():
corr = 0
tot = 0

model.train()

with torch.no_grad():
    for i in range(len(batch_1_X)):
        op = model(batch_1_X[i].view(-1, 100, 8).transpose(1, 2).to(device).float())
        pred = torch.argmax(op)
        real = batch_1_y[i]
        
        if pred == real:
            corr += 1
        
        tot += 1
        
print(corr)
print(tot)


print("-"*20)

corr = 0
tot = 0

with torch.no_grad():
    op = model(batch_1_X.transpose(1, 2).to(device).float())
    preds = torch.argmax(op, dim=1)
#     print(batch_1_y)
#     print(preds)
    for p, r in zip(preds, batch_1_y):
        if p == r:
            corr += 1
            
        tot += 1

print(corr)
print(tot)


This gives me the output:
3
16
--------------------
16
16

Switching it to model.eval():
corr = 0
tot = 0

model.eval()

with torch.no_grad():
    for i in range(len(batch_1_X)):
        op = model(batch_1_X[i].view(-1, 100, 8).transpose(1, 2).to(device).float())
        pred = torch.argmax(op)
        real = batch_1_y[i]
        
        if pred == real:
            corr += 1
        
        tot += 1
        
print(corr)
print(tot)


print("-"*20)

corr = 0
tot = 0

with torch.no_grad():
    op = model(batch_1_X.transpose(1, 2).to(device).float())
    preds = torch.argmax(op, dim=1)
#     print(batch_1_y)
#     print(preds)
    for p, r in zip(preds, batch_1_y):
        if p == r:
            corr += 1
            
        tot += 1

print(corr)
print(tot)

This gives the output:
8
16
--------------------
11
16

You were right @ptrblck, model.eval() does procure different results! But I did overfit the model to 100% accuracy for training data and while evaluating on the same training data I am not getting a 100% accuracy. Even if I try to measure the accuracy using two different methods, it gives me differing results. Any suggestions would help!