模块未找到错误:找不到名为'skimage.measure.simple_metrics'的模块。

4

我正在使用Google Colab。我安装了scikit-image。当我执行以下代码时,出现错误:

ModuleNotFoundError: No module named 'skimage.measure.simple_metrics'

import math 
import torch
import torch.nn as nn
import numpy as np
import cv2
from skimage.measure.simple_metrics import compare_psnr

def weights_init_kaiming(m):
    classname = m.__class__.__name__
    if classname.find('Conv') != -1:
        nn.init.kaiming_normal(m.weight.data, a=0, mode='fan_in')\
    elif classname.find('Linear') != -1:
        nn.init.kaiming_normal(m.weight.data, a=0, mode='fan_in')
    elif classname.find('BatchNorm') != -1:
        # nn.init.uniform(m.weight.data, 1.0, 0.02)
        m.weight.data.normal_(mean=0, std=math.sqrt(2./9./64.)).clamp_(-0.025,0.025)
        nn.init.constant(m.bias.data, 0.0)

def batch_PSNR(img, imclean, data_range):
    Img = img.data.cpu().numpy().astype(np.float32)
    Iclean = imclean.data.cpu().numpy().astype(np.float32)
    PSNR = 0
    for i in range(Img.shape[0]):
        PSNR += compare_psnr(Iclean[i,:,:,:], Img[i,:,:,:], data_range=data_range)
    return (PSNR/Img.shape[0])

这个线程可能会有所帮助吗?您是否安装了所有的依赖项? - nathan liang
2个回答

2

更改

from skimage.measure.simple_metrics import compare_psnr

from skimage.metrics import peak_signal_noise_ratio

并改变

PSNR += compare_psnr(Iclean[i,:,:,:], Img[i,:,:,:], data_range=data_range)

PSNR += peak_signal_noise_ratio(Iclean[i,:,:,:], Img[i,:,:,:], data_range=data_range)

请解释为什么这个解决方案有效。还有另一个被接受的解决方案,其中包含解释但没有代码。这个解决方案可能比其他带有解释的解决方案更好。 - Michael Ruth
这个解决方案可行是因为scikit-image更改了它的API(结构和命名约定)。 - Ayushman Kumar

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接