簡體   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