繁体   English   中英

ModuleNotFoundError:没有名为“skimage.measure.simple_metrics”的模块

[英]ModuleNotFoundError: No module named 'skimage.measure.simple_metrics'

我正在使用谷歌协作。 我安装了 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])

自 scikit-image 版本 0.16 起,该函数已从skimage.measure.compare_psnr重命名为skimage.metrics.peak_signal_noise_ratio

请检查您的 scikit-image 版本以确认。

https://scikit-image.org/docs/0.19.x/api/skimage.metrics.html?highlight=peak_signal_noise_ratio#peak-signal-noise-ratio

改变

从 skimage.measure.simple_metrics 导入 compare_psnr

-> 从 skimage.metrics 导入 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM