From b7dd1de9332a030f7bda21a1b895995063c3fce4 Mon Sep 17 00:00:00 2001 From: Soumick Chatterjee Date: Wed, 8 Dec 2021 16:09:03 +0100 Subject: [PATCH 1/2] nonnegative_ssim added for MS_SSIM nonnegative_ssim added for MS_SSIM with True as default, so there won't be any change in the default behaviour. --- pytorch_msssim/ssim.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pytorch_msssim/ssim.py b/pytorch_msssim/ssim.py index c4cbec8..5d117be 100644 --- a/pytorch_msssim/ssim.py +++ b/pytorch_msssim/ssim.py @@ -156,7 +156,7 @@ def ssim( def ms_ssim( - X, Y, data_range=255, size_average=True, win_size=11, win_sigma=1.5, win=None, weights=None, K=(0.01, 0.03) + X, Y, data_range=255, size_average=True, win_size=11, win_sigma=1.5, win=None, weights=None, K=(0.01, 0.03), nonnegative_ssim=False, ): r""" interface of ms-ssim @@ -220,7 +220,8 @@ def ms_ssim( X = avg_pool(X, kernel_size=2, padding=padding) Y = avg_pool(Y, kernel_size=2, padding=padding) - ssim_per_channel = torch.relu(ssim_per_channel) # (batch, channel) + if nonnegative_ssim: + ssim_per_channel = torch.relu(ssim_per_channel) # (batch, channel) mcs_and_ssim = torch.stack(mcs + [ssim_per_channel], dim=0) # (level, batch, channel) ms_ssim_val = torch.prod(mcs_and_ssim ** weights.view(-1, 1, 1), dim=0) @@ -284,6 +285,7 @@ def __init__( spatial_dims=2, weights=None, K=(0.01, 0.03), + nonnegative_ssim=True, ): r""" class for ms-ssim Args: @@ -303,6 +305,7 @@ def __init__( self.data_range = data_range self.weights = weights self.K = K + self.nonnegative_ssim = nonnegative_ssim def forward(self, X, Y): return ms_ssim( @@ -313,4 +316,5 @@ def forward(self, X, Y): win=self.win, weights=self.weights, K=self.K, + nonnegative_ssim=self.nonnegative_ssim, ) From 66997b00fa1a5994893f548a576ad0ab7a5b8a92 Mon Sep 17 00:00:00 2001 From: "Soumick Chatterjee, PhD" Date: Fri, 27 Jan 2023 14:43:15 +0100 Subject: [PATCH 2/2] up version --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index cf44fc1..0b129bf 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="pytorch_msssim", - version="0.2.1", + version="0.2.2", author="Gongfan Fang", author_email="fgf@zju.edu.cn", description="Fast and differentiable MS-SSIM and SSIM for pytorch.", @@ -19,4 +19,4 @@ "Operating System :: OS Independent", ], install_requires=['torch'] -) \ No newline at end of file +)