(opt, net, cuda, dataset, num_tests)
| 154 | |
| 155 | |
| 156 | def calc_error(opt, net, cuda, dataset, num_tests): |
| 157 | if num_tests > len(dataset): |
| 158 | num_tests = len(dataset) |
| 159 | with torch.no_grad(): |
| 160 | erorr_arr, IOU_arr, prec_arr, recall_arr = [], [], [], [] |
| 161 | for idx in tqdm(range(num_tests)): |
| 162 | data = dataset[idx * len(dataset) // num_tests] |
| 163 | # retrieve the data |
| 164 | image_tensor = data['img'].to(device=cuda) |
| 165 | calib_tensor = data['calib'].to(device=cuda) |
| 166 | sample_tensor = data['samples'].to(device=cuda).unsqueeze(0) |
| 167 | if opt.num_views > 1: |
| 168 | sample_tensor = reshape_sample_tensor(sample_tensor, opt.num_views) |
| 169 | label_tensor = data['labels'].to(device=cuda).unsqueeze(0) |
| 170 | |
| 171 | res, error = net.forward(image_tensor, sample_tensor, calib_tensor, labels=label_tensor) |
| 172 | |
| 173 | IOU, prec, recall = compute_acc(res, label_tensor) |
| 174 | |
| 175 | # print( |
| 176 | # '{0}/{1} | Error: {2:06f} IOU: {3:06f} prec: {4:06f} recall: {5:06f}' |
| 177 | # .format(idx, num_tests, error.item(), IOU.item(), prec.item(), recall.item())) |
| 178 | erorr_arr.append(error.item()) |
| 179 | IOU_arr.append(IOU.item()) |
| 180 | prec_arr.append(prec.item()) |
| 181 | recall_arr.append(recall.item()) |
| 182 | |
| 183 | return np.average(erorr_arr), np.average(IOU_arr), np.average(prec_arr), np.average(recall_arr) |
| 184 | |
| 185 | def calc_error_color(opt, netG, netC, cuda, dataset, num_tests): |
| 186 | if num_tests > len(dataset): |
no test coverage detected