import matplotlib.pyplot as plt import torch import Utilities as Utils import classifierModel import CrosswalkDataset as Dataset model = Utils.load_model_for_eval('trainedClassifier_weights.pth', classifierModel.BasicClassificationModel) dataset = Dataset.CrosswalkDataset("Crosswalk.v7-crosswalk-t3.tensorflow/test/_annotations.csv", "Crosswalk.v7-crosswalk-t3.tensorflow/test") with torch.no_grad(): loss = 0.0 batch_size = 3 dataloader = torch.utils.data.DataLoader(dataset, shuffle=True, batch_size=batch_size) loss_function = Utils.BasicClassificationLoss() count, notCount = 0, 0 for images, gt_labels in dataloader: predictions = model(images) softmax_probabilities = Utils.softmax(predictions) for i in range(len(images)): plt.imshow(images[i].permute(1, 2, 0).numpy() / 255.0) classif = False if (gt_labels[i][1] > gt_labels[i][0] and softmax_probabilities[i][1] > softmax_probabilities[i][0]) or (gt_labels[i][1] <= gt_labels[i][0] and softmax_probabilities[i][1] <= softmax_probabilities[i][0]): classif = True count += 1 else: notCount += 1 plt.title(str(softmax_probabilities[i]) + " " + str(gt_labels[i]) + str(classif)) plt.show() print(softmax_probabilities[i]) batch_loss = loss_function(predictions, gt_labels) loss += batch_loss print("Loss is: ", loss / (len(dataloader) * batch_size)) print(count, notCount)