def loop_unet(dl, model, losses_stats, device): samples_plus_losses = [] loss_func = torch.nn.CrossEntropyLoss() with torch.no_grad(): for (x, y), sample in pbar(dl): torch.manual_seed(0) x, y = _move_to_device(x, y, device) preds = model(x) loss = loss_func(preds, y) loss = { "loss_unet": float(loss.cpu().numpy()), "loss_total": float(loss.cpu().numpy()), } for l in losses_stats.keys(): losses_stats[l].append(loss[l]) loss_comp = LossesRecordComponent() loss_comp.set_losses(loss) sample[0].add_component(loss_comp) sample[0].set_img(tensor_to_image(x[0])) sample[0].segmentation.set_mask_array( MaskArray(y[0].detach().cpu().numpy())) samples_plus_losses.append(sample[0]) return samples_plus_losses, losses_stats
def loop_mmdet(dl, model, losses_stats, device): samples_plus_losses = [] with torch.no_grad(): for data, sample in pbar(dl): torch.manual_seed(0) _, data = _move_to_device(None, data, device) loss = model(**data) loss = sum_losses_mmdet(loss) for l in losses_stats.keys(): losses_stats[l].append(loss[l]) sample[0].update(loss) samples_plus_losses.append(sample[0]) return samples_plus_losses, losses_stats
def loop_mmdet(dl, model, losses_stats, device): samples_plus_losses = [] with torch.no_grad(): for data, sample in pbar(dl): torch.manual_seed(0) _, data = _move_to_device(None, data, device) loss = model(**data) loss = sum_losses_mmdet(loss) for l in losses_stats.keys(): losses_stats[l].append(loss[l]) loss_comp = LossesRecordComponent() loss_comp.set_losses(loss) sample[0].add_component(loss_comp) sample[0].set_img(mmdet_tensor_to_image(data["img"][0])) samples_plus_losses.append(sample[0]) return samples_plus_losses, losses_stats
def loop_yolo(dl, model, losses_stats, device): samples_plus_losses = [] compute_loss = ComputeLoss(model) with torch.no_grad(): for (x, y), sample in pbar(dl): torch.manual_seed(0) x, y = _move_to_device(x, y, device) preds = model(x) loss = compute_loss(preds, y)[0] loss = { "loss_yolo": float(loss.cpu().numpy()), "loss_total": float(loss.cpu().numpy()), } for l in losses_stats.keys(): losses_stats[l].append(loss[l]) loss_comp = LossesRecordComponent() loss_comp.set_losses(loss) sample[0].add_component(loss_comp) sample[0].set_img(tensor_to_image(x[0])) samples_plus_losses.append(sample[0]) return samples_plus_losses, losses_stats