.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/unfolded/demo_DEQ.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note New to DeepInverse? Get started with the basics with the :ref:`5 minute quickstart tutorial `. .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_unfolded_demo_DEQ.py: Deep Equilibrium (DEQ) algorithms for image deblurring ==================================================================================================== This a toy example to show you how to use DEQ to solve a deblurring problem. Note that this is a small dataset for training. For optimal results, use a larger dataset. For now DEQ is only possible with PGD, HQS and GD optimization algorithms. .. GENERATED FROM PYTHON SOURCE LINES 11-23 .. code-block:: Python import deepinv as dinv from pathlib import Path import torch from torch.utils.data import DataLoader from deepinv.optim.data_fidelity import L2 from deepinv.optim.prior import PnP from deepinv.unfolded import DEQ_builder from torchvision import transforms from deepinv.utils.demo import load_dataset, load_degradation .. GENERATED FROM PYTHON SOURCE LINES 24-27 Setup paths for data loading and results. ---------------------------------------------------------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 27-39 .. code-block:: Python BASE_DIR = Path(".") DATA_DIR = BASE_DIR / "measurements" RESULTS_DIR = BASE_DIR / "results" CKPT_DIR = BASE_DIR / "ckpts" DEG_DIR = BASE_DIR / "degradations" # Set the global random seed from pytorch to ensure reproducibility of the example. torch.manual_seed(0) device = dinv.utils.get_freer_gpu() if torch.cuda.is_available() else "cpu" .. GENERATED FROM PYTHON SOURCE LINES 40-43 Load base image datasets and degradation operators. ---------------------------------------------------------------------------------------- In this example, we use the CBSD500 dataset and the Set3C dataset for testing. .. GENERATED FROM PYTHON SOURCE LINES 43-62 .. code-block:: Python img_size = 32 n_channels = 3 # 3 for color images, 1 for gray-scale images operation = "deblurring" # For simplicity, we use a small dataset for training. # To be replaced for optimal results. For example, you can use the larger "drunet" dataset. train_dataset_name = "CBSD500" test_dataset_name = "set3c" # Generate training and evaluation datasets in HDF5 folders and load them. test_transform = transforms.Compose( [transforms.CenterCrop(img_size), transforms.ToTensor()] ) train_transform = transforms.Compose( [transforms.RandomCrop(img_size), transforms.ToTensor()] ) train_base_dataset = load_dataset(train_dataset_name, transform=train_transform) test_base_dataset = load_dataset(test_dataset_name, transform=test_transform) .. rst-class:: sphx-glr-script-out .. code-block:: none Downloading datasets/CBSD500.zip 0%| | 0.00/71.0M [00:00` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: demo_DEQ.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: demo_DEQ.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_