| 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) | |