From 49683dbf777c5949b3b72e72df45478fad6ffece Mon Sep 17 00:00:00 2001 From: nucli-vicky Date: Tue, 1 Sep 2026 12:00:03 +0200 Subject: [PATCH 1/2] add ffdnet --- .../solvers/ffdnet.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 deepinv_bench/benchmarks/cbsd68_gaussian_denoising/solvers/ffdnet.py diff --git a/deepinv_bench/benchmarks/cbsd68_gaussian_denoising/solvers/ffdnet.py b/deepinv_bench/benchmarks/cbsd68_gaussian_denoising/solvers/ffdnet.py new file mode 100644 index 0000000..4065252 --- /dev/null +++ b/deepinv_bench/benchmarks/cbsd68_gaussian_denoising/solvers/ffdnet.py @@ -0,0 +1,21 @@ +from benchopt import BaseSolver + +import torch +import deepinv as dinv + + +class Solver(BaseSolver): + name = "FFDNet" + + parameters = {} + + def set_objective(self, train_dataset=None, physics=None): + device = dinv.utils.get_freer_gpu() if torch.cuda.is_available() else "cpu" + self.model = dinv.models.ArtifactRemoval(dinv.models.FFDNet(n_conv_layers=12, nf=96, img_channels=3, norm=None, last_conv_bias=True), device=device) + self.model.device = device + + def run(self, _): + pass + + def get_result(self): + return dict(model=self.model) From 715df2fd19779c418e5326cc3006789e27818850 Mon Sep 17 00:00:00 2001 From: nucli-vicky Date: Tue, 1 Sep 2026 12:01:47 +0200 Subject: [PATCH 2/2] lint --- .../benchmarks/cbsd68_gaussian_denoising/solvers/ffdnet.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/deepinv_bench/benchmarks/cbsd68_gaussian_denoising/solvers/ffdnet.py b/deepinv_bench/benchmarks/cbsd68_gaussian_denoising/solvers/ffdnet.py index 4065252..518a61c 100644 --- a/deepinv_bench/benchmarks/cbsd68_gaussian_denoising/solvers/ffdnet.py +++ b/deepinv_bench/benchmarks/cbsd68_gaussian_denoising/solvers/ffdnet.py @@ -11,7 +11,12 @@ class Solver(BaseSolver): def set_objective(self, train_dataset=None, physics=None): device = dinv.utils.get_freer_gpu() if torch.cuda.is_available() else "cpu" - self.model = dinv.models.ArtifactRemoval(dinv.models.FFDNet(n_conv_layers=12, nf=96, img_channels=3, norm=None, last_conv_bias=True), device=device) + self.model = dinv.models.ArtifactRemoval( + dinv.models.FFDNet( + n_conv_layers=12, nf=96, img_channels=3, norm=None, last_conv_bias=True + ), + device=device, + ) self.model.device = device def run(self, _):