Hi. It's a great work.
But, it may be a wrong implement of MS-SSIM.
pow1 = (mcs1, mcs2, mcs3, mcs4, mcs5)
pow2 = (mssim1, mssim2, mssim3, mssim4, mssim5)
let along weights.
The MS-SSIM should be:
MS-SSIM = mcs1mcs2mcs3mcs4mssim5
The implement in your code torch.prod(pow1[:-1] * pow2[-1]) would let to:
MS-SSIM = mcs1mcs2mcs3mcs4(mssim5 ** 4)
Please check if the mistake is mine. Thanks.