So my hyperparams are:
vocab_size = 33988
embedded_size = 500
hidden_size = 300
num_classes = 363

Modified my compute_accuracy, Results are still different each time.
def compute_accuracy(model, data_loader, train=False, validation=False):
    correct_pred, num_examples = 0, 0
    model.eval()
    for i, (features, targets) in enumerate(data_loader):

        features = features.to(device)
        targets = targets.to(device)

        logits = model(features)
        y_pred = logits.max(1)[1]

        num_examples += targets.size(0)
        correct_pred += (y_pred == targets).sum()
    return correct_pred.float() / num_examples * 100

state_dict of the model is too big to post here