Hi, what you are doing right is to split the data into training and validation.
You are training the model and then validating it already on unseen data (that is the idea of the validation loop).
Your testing loop currently does exact the same, which is not needed in most cases. I think you want to use your model simply on any other, new data right? This would then be called “inference”. You simply pass data to your model and want the output. By doing that, you don’t want to perform the gradient calculation nor the loss calculation which speeds up the process and uses way less ram (this is also recommended at the validation loop since you want to validate and not train.).
If i get you right, you loaded the model from a checkpoint, which is good!
Then you set your model to eval mode, good.
Now you want to deactivate the autograd engine before your loop. Do:
with torch.no_grad():
    <your loop here>

Then you need to do some decision making. Your model ouputs two values so i guess you are doing a binary classification (either one or the other output), am i right?
If so, then you should replace:
self.fc3 = nn.Linear(250, 2) 

with
self.fc3 = nn.Linear(250, 1) 

In this case your model outputs logits as well but the CrossEntropyLoss would not work. Use:
torch.nn.BCEWithLogitsLoss()

for that (but this is just a hint, your current approach works as well).
Back to the for loop over your test data:
your model outputs logits so you need to process and interpret them. You can do the following:
output_logits = your_model(input_batch)  # shaped like: batch_size, num_classes

if output_logits.size(1) == 1:
    # this is for binary classification: 
    # you have one output, everything below 0.5 relates to class 1, everything above to class 2
    output_probabilities = torch.sigmoid(output_logits)  # out logits are now in between 0 and 1
    outs = (output_probabilities.squeeze(1) > 0.5).float()  # outputs a vector ontaining zeroes and ones
    correct = outs.eq(targets).sum().item()  # number of correct predictions
else:
    # this would fit to your current approch assuming exact one class is correct
    # get the index of the highest output logit for each sample (no need to use sigmoid here):
    values, predictions = torch.max(output_logits, dim=1)
    correct = predictions.eq(targets).sum().item()

And that’s it. You have your predictions as a tensor and the amount of correct predictions if you have the ground truth.
If no ground truth is given, then remove the parts including the targets 
If you are facing errors: please include the errors in your question as well. We as the readers might help better in that case.