win_size exceeds image extent. Either ensure that your images are at least 7x7; or pass win_size ex

在进行超分辨率重建后想计算SSIM和PSNR,最开始发现导入compare_psnr,compare_ssim居然报错了,

bug1

ImportError: cannot import name ‘compare_psnr’ from ‘skimage.measure’

上网一查发现版本更新换成了structural_similarity和peak_signal_noise_ratio。

解决

之后又发现 

bug2

报错ValueError: win_size exceeds image extent. Either ensure that your images are at least 7x7; or pass win_size explicitly in the function call, with an odd value less than or equal to the smaller side of your images. If your images are multichannel (with color channels), set channel_axis to the axis number corresponding to the channels.
 

好家伙,这么一大段话,我估计 multichannel=True也已经不用了,报错中说

set channel_axis to the axis number corresponding to the channels

将你的通道维度告诉channel_axis

解决

续:后来我完成了我的模型训练等等一切,最后计算全部数据的SSIM和PSNR时的代码我会放在下一篇文章中,但在这时又遇到了一个巨坑的错。

bug3

报错ValueError: image_true has intensity values outside the range expected for its data type. Please manually specify the data_range.

字面翻译:ValueError:image_true的强度值超出了其数据类型的预期范围。请手动指定data_range。

由于我的fake_img和hr_img是经过transforms.ToTensor()出来的,因此他们都在[0,1]的范围内,只用用一个data_range值为255就ok了,虽然我并不是很理解,但是代码就这么通了 0。0

修改前

修改后

 

 

 

你可能感兴趣的:(debug,python,开发语言)