Skip to content

Conversation

@matthieutrs
Copy link
Collaborator

This PR extends current existing TV priors to the 3D case (up to now, only wavelet priors were 3d compatible). Now, these should work with tensors of shape (B, C, D, H, W) and (B, C, H, W).

Checks to be done before submitting your PR

  • python3 -m pytest deepinv/tests runs successfully.
  • black . runs successfully.
  • make html runs successfully (in the docs/ directory).
  • Updated docstrings related to the changes (as applicable).
  • Added an entry to the CHANGELOG.rst.

Copy link
Collaborator

@Andrewwango Andrewwango left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good so far, just a couple of small changes. I didn't review the TV models themselves nor the 3D test, as I don't understand it. Please can you request someone else to review these?

Copy link
Collaborator

@Andrewwango Andrewwango left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me but please request @jscanvic

@codecov
Copy link

codecov bot commented Sep 16, 2025

Codecov Report

❌ Patch coverage is 89.47368% with 8 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (main@efe4a22). Learn more about missing BASE report.
⚠️ Report is 4 commits behind head on main.

Files with missing lines Patch % Lines
deepinv/models/tgv.py 90.24% 2 Missing and 2 partials ⚠️
deepinv/models/tv.py 86.20% 2 Missing and 2 partials ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #745   +/-   ##
=======================================
  Coverage        ?   83.91%           
=======================================
  Files           ?      206           
  Lines           ?    20720           
  Branches        ?     2833           
=======================================
  Hits            ?    17388           
  Misses          ?     2412           
  Partials        ?      920           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@jscanvic
Copy link
Collaborator

Thanks Matthieu it looks really nice! I can't have a close look at it before next week but happy to merge if you guys think it's worth merging quickly!

Copy link
Collaborator

@jscanvic jscanvic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Mostly minor comments

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably out of scope but out of curiosity, is there any reason we don't rely on the deepinv.optim in those TV models? Happy to leave it as is just wondering

x2 = self.x2.clone()
u2 = self.u2.clone()

self.sigma = (
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... (see previous comment) but in this case I'd rather get rid of self.sigma entirely and use sigma instead here.


self.tau = tau
self.rho = rho
self.sigma = 1 / self.tau / 8
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's technically breaking to get rid of it in the init but it was probably meant to be a private attribute so I'm happy with making the change... (see next comment)

self.tau = 0.01 # > 0

self.rho = 1.99 # in 1,2
self.sigma = 1 / self.tau / 72
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as for TV

self.restart = False

f = 3 if (y.ndim - 2) == 3 else 1
self.sigma = 1 / self.tau / (72 * f)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as for TV

u[:, :, :-1, :, 0] = u[:, :, :-1, :, 0] + x[:, :, 1:]
u[:, :, :, :-1, 1] = u[:, :, :, :-1, 1] - x[..., :-1]
u[:, :, :, :-1, 1] = u[:, :, :, :-1, 1] + x[..., 1:]
if x.ndim == 4:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you handle the case x.ndim not in [4, 5] explicitely? i.e. raising a ValueError

Also, I think it's a bit heavy to have that many lines / variables to initialize u when it could be initialized as

u = torch.zeros((*x.shape, x.ndim - 2), device=x.device, dtype=x.dtype)

Happy to leave the code as is but feel free to make the change if you prefer it as well

u[:, :, :, :-1, :, 1] = u[:, :, :, :-1, :, 1] - x[:, :, :, :-1]
u[:, :, :, :-1, :, 1] = u[:, :, :, :-1, :, 1] + x[:, :, :, 1:]
u[:, :, :, :, :-1, 2] = u[:, :, :, :, :-1, 2] - x[..., :-1]
u[:, :, :, :, :-1, 2] = u[:, :, :, :, :-1, 2] + x[..., 1:]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add tests for nabla / nabla_adjoint / epsilon / epsilon_adjoint to make sure they're implemented correctly? It's really difficult to tell from the code alone

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you mean these tests?

assert torch.allclose(e, torch.tensor([0.0], dtype=torch.float64))


def test_TVs_adjoint_3d():
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you merge the two tests using a parameter for the nb of spatial dimensions and using different shapes accordingly?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It'd be nice to have a redirection for SEO but not entirely sure how - happy to let the old URL die if we don't figure it out

/ 2.0
) # we display the best value of dualcost2 computed so far.
primalcostlowerbound = max(primalcostlowerbound, dualcost2.item())
if self.verbose:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch thanks!

Copy link
Collaborator

@jscanvic jscanvic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM thanks Matthieu!

@jscanvic jscanvic merged commit f61192f into deepinv:main Oct 15, 2025
8 checks passed
Andrewwango added a commit that referenced this pull request Nov 14, 2025
* 3D Total variation priors (#745)

* 3D denoising variational

* comments

* comments jeremy

* Remove concurrency settings from gpu_docs.yml (#850)

* Remove concurrency settings from gpu_docs.yml

final CI fixes

* Remove concurrency settings from test_gpu.yml

Removed concurrency settings from the GPU test workflow.

* Refine Codecov upload condition for Linux only

* Update Codecov upload condition in workflow

Restrict Codecov upload to Linux with Python 3.10 only.

* Fix astra test failing on GPU (#841)

* fix normalize threshold in astra tests

* black

* Fix test transform on GPU (#852)

Co-authored-by: Andrew Wang <[email protected]>

* Fix broken download Set14 (#845)

* .

* fix

* adapt docs & use utils

* changelog

* Fix py3.9 not supported by recent coverage version (#856)

* .

* .

* Follow up to #856 (#857)

* Robustify CI for Python 3.9 (#858)

* Robustify CI for Python 3.9

* Update test_pr.yml

* Fix pip install command for Python 3.9

* Update test_pr.yml

* Update CI workflow for deepinv installation

Refactor installation steps for deepinv in CI workflow to handle Python 3.9 compatibility.

* Add compatibility step for Python 3.9 in workflow

Add step to modify pyproject.toml for Python 3.9 compatibility.

* Refactor deepinv installation steps in workflow

Removed conditional installation for Python 3.9 and adjusted the installation step for deepinv dependencies.

* Support 3D patches datasets (#806)

* Nibabel test hotfix (#863)

* Nibabel test hotfix

* Require 'blosc2' for the test dataset

Added a dependency check for 'blosc2' in the test.

* Typing optim (#827)

* distance typed

* dpir

* data fidelity

* fix callable

* bregman

* fix callable distance

* epll

* start optimizers.py

* phase retrieval

* start utils

* utils fixes

* fix circular import from physics

* bregman returns

* data fid phsycis & return

* distance returns

* epll returns

* opt & phase retrieval

* return spectral wrapper

* future annotations

* _reconstruction_step

* utils

* add suggestions

* finish optimizers.py

* Gentler loader check (#871)

* Gentler loader check

* remove codecov from test

* black

* add wee comment

* Fix error handling for CBSD68 dataset (#868)

* fix error handling

* fix

* suggestions

* add PR #723 in CHANGELOG; fix some minor typos (#860)

* add PR #723 in CHANGELOG; fix some minor typos

* update CHANGELOG

* Fix DDRM citation to reference Kawar et al. 2022 (#876)

* Initial plan

* Fix DDRM reference to cite Kawar et al. 2022

Co-authored-by: tachella <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: tachella <[email protected]>

* Allow for complex data inside Wavelets (#738)

* Update mri.py

* Update mri.py

* Added Complex support

* Added support for complex data

* reformat

* Undo MRI change

* More fixes

* More fixes

* yet more fixes, gosh why am i like this

* Finally done

* Take in comments

* fix psnr and add performance checks

---------

Co-authored-by: German Shâma Wache <[email protected]>
Co-authored-by: Jérémy Scanvic <[email protected]>

* add self-sup eval + history fixes (#777)

* add self-sup eval + history fixes

* changelog

* avoid using losses as metrics + add explicit model inference with .eval + trainer tests

* add docs warning

* remove loss docstring from metric

* add missing docstrings

* small fix

* doc fixes

* doc fixes

* fixes

* fix adversarial

* fixes

* fix bugs

* black

* reblack

* jeremy's comments

* improve docs explanation

* unsure + community + generate_datasets fix

* early_stop int + fix doc typo

* fix docs

* add pragma

* andrew's comments

* docstring compute_metrics

* change names + test

* still some fixes to go

* black

* add train_metrics_history

* fix wandb bug

* black + docs fixes

* black + docs fixes

* fix

* fix class link

* re-order

* Update deepinv/training/trainer.py

Co-authored-by: Andrew Wang <[email protected]>

* andrew's comments

* andrew's comments

* fix julian issue

* docstring fixes

---------

Co-authored-by: Andrew Wang <[email protected]>

* Add 3D variants of CNN networks (#869)

* dncnn

* gan

* .

* ruff check

* fix ordering test_pad

* maxpool unet nd

* icnn

* dsccp

* PDNet

* fix icnn

* fix dim drunet

* pragma

* fix dip

* test dsccp 3D

* icnn 3D test

* more tests

* test PDNet

* tests GAN

* .

* test all modes drunet + fix bug from main

* changelog

* clean dummy

* remove c variable

* fix doc rician noise

* 3d models -> denoisers

* warnings

* fixdim doc

* userguide

* syntax

* Fix LsdirHR download (#866)

* .

* ruff + fix docs

* add proposed train glob

* changelog

* fix docstring randompatchsampler

* fix sphynx?

* pragma

* pragma

* fix denoiser docs

* `dinv.io` module and clean up utils (#768)

* start develpoing io submodule + modify examples

* add scipy load mat

* fix doc

* add references to DIP demo (idk why this hasn't been added before)

* add raster

* io -> io_utils, signal -> signals

* checks

* ISMRMD loading

* add all tests

* fix optional deps

* add new example

* fix example

* changelog

* fix docs

* oops

* fix doc

* update typing

* remove load_np and load_nifit in preparation for merge from vicky PR

* black

* test assert in doctest

* add nifti vicky comment + io_utils -> io

* pydicom rescale + lidc uses load_dicom

* fix test

* fix typing in io and add kwargs

* fix sphinx typing

* fix test

* fix doc

* vicky comments

* vicky comment

* fix doc

* blosc2 test

* PET comment

* Minor README fix (#882)

* fix (#885)

Co-authored-by: mh-nguyen712 <[email protected]>

* Minor trainer docstring fixes (#884)

* io -> utils.io

* improve docstring

* very minor fix

* Fix formatting in contributing section of README (#888)

* Fix #887 (#890)

* Move changelog.rst to docs (#889)

* init

* fix links

* fix links

* fix double changelog

* change pytorch link

* remove llm bs

* black

* fix docs

* Update .github/workflows/release.yml

Co-authored-by: Minh Hai Nguyen <[email protected]>

* fix ghs

* fix ghs

---------

Co-authored-by: Minh Hai Nguyen <[email protected]>

* Enable ruff rule N805 (#892)

* enable ruff rule N805

Co-authored-by: Jérémy Scanvic <[email protected]>

* ruff check --fix --unsafe-fixes

Co-authored-by: Jérémy Scanvic <[email protected]>

---------

Co-authored-by: Andrewwango <[email protected]>

* Fix announcement text in conf.py (#901)

* Update link to changelog in PR template (#903)

* Fix docstring formatting in BaseSDE class (#902)

* Refactor release workflow (#914)

* Refactor release workflow by removing CI checks

Remove CI status check step from release workflow

* fixes

* fixes

* black

* Release v0.3.6 (#917)

Co-authored-by: tachella <[email protected]>

* Fix license formatting in CITATION.cff (#920)

* Fix license formatting in CITATION.cff

* Create workflow to validate CITATION.cff

Add GitHub Actions workflow to validate CITATION.cff file

* Add check_citation.yml workflow file

* Fix license format in CITATION.cff

* Add DOI and version to CITATION.cff

* Warn inconsistent upsampling parameters in SwinIR (#909)

* add a warning to SwinIR

* update the changelog

* let test be skipped when timm is absent (#922)

* Enable ruff rule E402 (#910)

* enable rule E402

Co-authored-by: Jérémy Scanvic <[email protected]>

* ignore E402 in the examples

Co-authored-by: Jérémy Scanvic <[email protected]>

* disable E402 in deepinv/__init__.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* pull changes from original PR

* fix the import location

* put back the weird named import

---------

Co-authored-by: Thibaut Modrzyk <[email protected]>

* Add demo to connect spyrit and deepinv (#865)

* Add demo to connect spyrit and deepinv

* implement changes

* lint

* add spyrit optional dependency

* fix toml file

* fix attribute to /images/

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

---------

Co-authored-by: Thibaut Modrzyk <[email protected]>
Co-authored-by: Jérémy Scanvic <[email protected]>

* add youtube (#926)

* Add center_crop parameter to Metric class (#913)

* Initial plan

* Add center_crop functionality to Metric class and update all child classes

Co-authored-by: tachella <[email protected]>

* fix metric docs + black + test for mixed signs

* fix docstrings

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: tachella <[email protected]>
Co-authored-by: Julián Tachella <[email protected]>

* fix contributing doc

* remove auto labeller

---------

Co-authored-by: Matthieu Terris <[email protected]>
Co-authored-by: Julián Tachella <[email protected]>
Co-authored-by: romainvo <[email protected]>
Co-authored-by: Andrew Wang <[email protected]>
Co-authored-by: Vicky De Ridder <[email protected]>
Co-authored-by: Jérémy Scanvic <[email protected]>
Co-authored-by: Johannes Hertrich <[email protected]>
Co-authored-by: Brayan Monroy <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Chaithya G R <[email protected]>
Co-authored-by: German Shâma Wache <[email protected]>
Co-authored-by: Jérémy Scanvic <[email protected]>
Co-authored-by: Minh Hai Nguyen <[email protected]>
Co-authored-by: mh-nguyen712 <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Thibaut Modrzyk <[email protected]>
Co-authored-by: tbaudier <[email protected]>
Co-authored-by: Julián Tachella <[email protected]>
Andrewwango added a commit that referenced this pull request Nov 14, 2025
* enable blank issues

* PR status labels

* readme/index/community references contributing

* add label system

* Labelling (#931)

* 3D Total variation priors (#745)

* 3D denoising variational

* comments

* comments jeremy

* Remove concurrency settings from gpu_docs.yml (#850)

* Remove concurrency settings from gpu_docs.yml

final CI fixes

* Remove concurrency settings from test_gpu.yml

Removed concurrency settings from the GPU test workflow.

* Refine Codecov upload condition for Linux only

* Update Codecov upload condition in workflow

Restrict Codecov upload to Linux with Python 3.10 only.

* Fix astra test failing on GPU (#841)

* fix normalize threshold in astra tests

* black

* Fix test transform on GPU (#852)

Co-authored-by: Andrew Wang <[email protected]>

* Fix broken download Set14 (#845)

* .

* fix

* adapt docs & use utils

* changelog

* Fix py3.9 not supported by recent coverage version (#856)

* .

* .

* Follow up to #856 (#857)

* Robustify CI for Python 3.9 (#858)

* Robustify CI for Python 3.9

* Update test_pr.yml

* Fix pip install command for Python 3.9

* Update test_pr.yml

* Update CI workflow for deepinv installation

Refactor installation steps for deepinv in CI workflow to handle Python 3.9 compatibility.

* Add compatibility step for Python 3.9 in workflow

Add step to modify pyproject.toml for Python 3.9 compatibility.

* Refactor deepinv installation steps in workflow

Removed conditional installation for Python 3.9 and adjusted the installation step for deepinv dependencies.

* Support 3D patches datasets (#806)

* Nibabel test hotfix (#863)

* Nibabel test hotfix

* Require 'blosc2' for the test dataset

Added a dependency check for 'blosc2' in the test.

* Typing optim (#827)

* distance typed

* dpir

* data fidelity

* fix callable

* bregman

* fix callable distance

* epll

* start optimizers.py

* phase retrieval

* start utils

* utils fixes

* fix circular import from physics

* bregman returns

* data fid phsycis & return

* distance returns

* epll returns

* opt & phase retrieval

* return spectral wrapper

* future annotations

* _reconstruction_step

* utils

* add suggestions

* finish optimizers.py

* Gentler loader check (#871)

* Gentler loader check

* remove codecov from test

* black

* add wee comment

* Fix error handling for CBSD68 dataset (#868)

* fix error handling

* fix

* suggestions

* add PR #723 in CHANGELOG; fix some minor typos (#860)

* add PR #723 in CHANGELOG; fix some minor typos

* update CHANGELOG

* Fix DDRM citation to reference Kawar et al. 2022 (#876)

* Initial plan

* Fix DDRM reference to cite Kawar et al. 2022

Co-authored-by: tachella <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: tachella <[email protected]>

* Allow for complex data inside Wavelets (#738)

* Update mri.py

* Update mri.py

* Added Complex support

* Added support for complex data

* reformat

* Undo MRI change

* More fixes

* More fixes

* yet more fixes, gosh why am i like this

* Finally done

* Take in comments

* fix psnr and add performance checks

---------

Co-authored-by: German Shâma Wache <[email protected]>
Co-authored-by: Jérémy Scanvic <[email protected]>

* add self-sup eval + history fixes (#777)

* add self-sup eval + history fixes

* changelog

* avoid using losses as metrics + add explicit model inference with .eval + trainer tests

* add docs warning

* remove loss docstring from metric

* add missing docstrings

* small fix

* doc fixes

* doc fixes

* fixes

* fix adversarial

* fixes

* fix bugs

* black

* reblack

* jeremy's comments

* improve docs explanation

* unsure + community + generate_datasets fix

* early_stop int + fix doc typo

* fix docs

* add pragma

* andrew's comments

* docstring compute_metrics

* change names + test

* still some fixes to go

* black

* add train_metrics_history

* fix wandb bug

* black + docs fixes

* black + docs fixes

* fix

* fix class link

* re-order

* Update deepinv/training/trainer.py

Co-authored-by: Andrew Wang <[email protected]>

* andrew's comments

* andrew's comments

* fix julian issue

* docstring fixes

---------

Co-authored-by: Andrew Wang <[email protected]>

* Add 3D variants of CNN networks (#869)

* dncnn

* gan

* .

* ruff check

* fix ordering test_pad

* maxpool unet nd

* icnn

* dsccp

* PDNet

* fix icnn

* fix dim drunet

* pragma

* fix dip

* test dsccp 3D

* icnn 3D test

* more tests

* test PDNet

* tests GAN

* .

* test all modes drunet + fix bug from main

* changelog

* clean dummy

* remove c variable

* fix doc rician noise

* 3d models -> denoisers

* warnings

* fixdim doc

* userguide

* syntax

* Fix LsdirHR download (#866)

* .

* ruff + fix docs

* add proposed train glob

* changelog

* fix docstring randompatchsampler

* fix sphynx?

* pragma

* pragma

* fix denoiser docs

* `dinv.io` module and clean up utils (#768)

* start develpoing io submodule + modify examples

* add scipy load mat

* fix doc

* add references to DIP demo (idk why this hasn't been added before)

* add raster

* io -> io_utils, signal -> signals

* checks

* ISMRMD loading

* add all tests

* fix optional deps

* add new example

* fix example

* changelog

* fix docs

* oops

* fix doc

* update typing

* remove load_np and load_nifit in preparation for merge from vicky PR

* black

* test assert in doctest

* add nifti vicky comment + io_utils -> io

* pydicom rescale + lidc uses load_dicom

* fix test

* fix typing in io and add kwargs

* fix sphinx typing

* fix test

* fix doc

* vicky comments

* vicky comment

* fix doc

* blosc2 test

* PET comment

* Minor README fix (#882)

* fix (#885)

Co-authored-by: mh-nguyen712 <[email protected]>

* Minor trainer docstring fixes (#884)

* io -> utils.io

* improve docstring

* very minor fix

* Fix formatting in contributing section of README (#888)

* Fix #887 (#890)

* Move changelog.rst to docs (#889)

* init

* fix links

* fix links

* fix double changelog

* change pytorch link

* remove llm bs

* black

* fix docs

* Update .github/workflows/release.yml

Co-authored-by: Minh Hai Nguyen <[email protected]>

* fix ghs

* fix ghs

---------

Co-authored-by: Minh Hai Nguyen <[email protected]>

* Enable ruff rule N805 (#892)

* enable ruff rule N805

Co-authored-by: Jérémy Scanvic <[email protected]>

* ruff check --fix --unsafe-fixes

Co-authored-by: Jérémy Scanvic <[email protected]>

---------

Co-authored-by: Andrewwango <[email protected]>

* Fix announcement text in conf.py (#901)

* Update link to changelog in PR template (#903)

* Fix docstring formatting in BaseSDE class (#902)

* Refactor release workflow (#914)

* Refactor release workflow by removing CI checks

Remove CI status check step from release workflow

* fixes

* fixes

* black

* Release v0.3.6 (#917)

Co-authored-by: tachella <[email protected]>

* Fix license formatting in CITATION.cff (#920)

* Fix license formatting in CITATION.cff

* Create workflow to validate CITATION.cff

Add GitHub Actions workflow to validate CITATION.cff file

* Add check_citation.yml workflow file

* Fix license format in CITATION.cff

* Add DOI and version to CITATION.cff

* Warn inconsistent upsampling parameters in SwinIR (#909)

* add a warning to SwinIR

* update the changelog

* let test be skipped when timm is absent (#922)

* Enable ruff rule E402 (#910)

* enable rule E402

Co-authored-by: Jérémy Scanvic <[email protected]>

* ignore E402 in the examples

Co-authored-by: Jérémy Scanvic <[email protected]>

* disable E402 in deepinv/__init__.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* pull changes from original PR

* fix the import location

* put back the weird named import

---------

Co-authored-by: Thibaut Modrzyk <[email protected]>

* Add demo to connect spyrit and deepinv (#865)

* Add demo to connect spyrit and deepinv

* implement changes

* lint

* add spyrit optional dependency

* fix toml file

* fix attribute to /images/

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

* Update examples/external-libraries/demo_connect_spyrit.py

Co-authored-by: Jérémy Scanvic <[email protected]>

---------

Co-authored-by: Thibaut Modrzyk <[email protected]>
Co-authored-by: Jérémy Scanvic <[email protected]>

* add youtube (#926)

* Add center_crop parameter to Metric class (#913)

* Initial plan

* Add center_crop functionality to Metric class and update all child classes

Co-authored-by: tachella <[email protected]>

* fix metric docs + black + test for mixed signs

* fix docstrings

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: tachella <[email protected]>
Co-authored-by: Julián Tachella <[email protected]>

* fix contributing doc

* remove auto labeller

---------

Co-authored-by: Matthieu Terris <[email protected]>
Co-authored-by: Julián Tachella <[email protected]>
Co-authored-by: romainvo <[email protected]>
Co-authored-by: Andrew Wang <[email protected]>
Co-authored-by: Vicky De Ridder <[email protected]>
Co-authored-by: Jérémy Scanvic <[email protected]>
Co-authored-by: Johannes Hertrich <[email protected]>
Co-authored-by: Brayan Monroy <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Chaithya G R <[email protected]>
Co-authored-by: German Shâma Wache <[email protected]>
Co-authored-by: Jérémy Scanvic <[email protected]>
Co-authored-by: Minh Hai Nguyen <[email protected]>
Co-authored-by: mh-nguyen712 <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Thibaut Modrzyk <[email protected]>
Co-authored-by: tbaudier <[email protected]>
Co-authored-by: Julián Tachella <[email protected]>

---------

Co-authored-by: Matthieu Terris <[email protected]>
Co-authored-by: Julián Tachella <[email protected]>
Co-authored-by: romainvo <[email protected]>
Co-authored-by: Andrew Wang <[email protected]>
Co-authored-by: Vicky De Ridder <[email protected]>
Co-authored-by: Jérémy Scanvic <[email protected]>
Co-authored-by: Johannes Hertrich <[email protected]>
Co-authored-by: Brayan Monroy <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Chaithya G R <[email protected]>
Co-authored-by: German Shâma Wache <[email protected]>
Co-authored-by: Jérémy Scanvic <[email protected]>
Co-authored-by: Minh Hai Nguyen <[email protected]>
Co-authored-by: mh-nguyen712 <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Thibaut Modrzyk <[email protected]>
Co-authored-by: tbaudier <[email protected]>
Co-authored-by: Julián Tachella <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants