def visual_evaluation(model, quadratic, writer, epoch): gen = dataloader.generate_hard_input(quadratic=quadratic) y_hats = [] ys = [] for X, y in gen: X = X.cuda() / 255. y = y / 255. y_hat = model(X).detach().cpu().squeeze(dim=0) y_hats.append(y_hat) ys.append(y) y_hats = torch.stack(y_hats).clamp(0, 1) ys = torch.stack(ys) # create image grid grid = utilities.create_grid(y_hats, ys, padding=20, nrow=4) writer.add_image('hard_examples', img_tensor=grid, global_step=epoch)
weight_in_current_cluster) if curr_cost < min_cost: # Found better package to go to next min_index = i min_cost = curr_cost if min_index != -1: print("Appended ", min_index, " with cost ", min_cost) cluster.append(min_index) packages_visited[min_index] = 1 num_packages_visited += 1 curr_x = packages[min_index].x curr_y = packages[min_index].y weight_in_current_cluster += packages[min_index].weight clusters.append(cluster) return clusters if __name__ == '__main__': packages = [] obstacles = [] num_r = 0 packages, obstacles, num_r = utilities.parse_input('3a.in') maze = utilities.create_grid(packages, obstacles) clusters = part3(packages) print(clusters) sequence = convert_clusters_to_sequence(packages, clusters, maze) print(sequence) build_output(packages, sequence, maze)