Пример #1
0
        # Inference
        tex, pred = model(iuv)

        # Composite
        pred = torch.where(mask > 0, pred, image)

        # Loss
        loss_rgb = masked_l1(tex[:, :3], image, mask.float())
        loss_l1 = masked_l1(pred, image, mask.float())
        loss_lpips = lpips(pred, image)
        loss = loss_rgb + loss_l1 + loss_lpips

        # Backpropagation
        loss.backward()
        optimizer.step()
        optimizer.zero_grad()

        # Logging
        output = pred[0].detach().cpu().numpy().transpose(1, 2, 0)
        cv2.imwrite(f"results/{e}_{i}.jpg", (255 * output).astype(np.uint8))

        wandb.log({
            "loss_rgb": loss_rgb.item(),
            "loss_l1": loss_l1.item(),
            "loss_lpips": loss_lpips.item(),
            "loss": loss.item(),
        })

torch.save(model.state_dict(), f"breatheless_v1.pth")