版本不匹配问题
当使用
ImportError Traceback (most recent call last)
Cell In[35], line 1
----> 1 from anomalib.utils.metrics import AUPRO, AUROC
出现如下报错
File ~\AppData\Roaming\Python\Python38\site-packages\anomalib\utils\metrics\__init__.py:12
9 import warnings
10 from typing import Any
---> 12 import torchmetrics
13 from omegaconf import DictConfig, ListConfig
15 from .anomaly_score_distribution import AnomalyScoreDistribution
File C:\ProgramData\Anaconda3\envs\ldm\lib\site-packages\torchmetrics\__init__.py:22
14 from torchmetrics import functional # noqa: E402
15 from torchmetrics.aggregation import CatMetric, MaxMetric, MeanMetric, MinMetric, SumMetric # noqa: E402
16 from torchmetrics.audio import ( # noqa: E402
17 PermutationInvariantTraining,
18 ScaleInvariantSignalDistortionRatio,
19 ScaleInvariantSignalNoiseRatio,
20 SignalDistortionRatio,
21 SignalNoiseRatio,
---> 22 )
23 from torchmetrics.classification import ( # noqa: E402
24 AUC,
25 AUROC,
(...)
49 StatScores,
50 )
51 from torchmetrics.collections import MetricCollection # noqa: E402
File C:\ProgramData\Anaconda3\envs\ldm\lib\site-packages\torchmetrics\functional\__init__.py:14
1 # Copyright The PyTorch Lightning team.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
(...)
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
---> 14 from torchmetrics.functional.audio.pit import permutation_invariant_training, pit_permutate
15 from torchmetrics.functional.audio.sdr import scale_invariant_signal_distortion_ratio, signal_distortion_ratio
16 from torchmetrics.functional.audio.snr import scale_invariant_signal_noise_ratio, signal_noise_ratio
File C:\ProgramData\Anaconda3\envs\ldm\lib\site-packages\torchmetrics\functional\audio\_deprecated.py:9
7 from torchmetrics.functional.audio.sdr import scale_invariant_signal_distortion_ratio, signal_distortion_ratio
8 from torchmetrics.functional.audio.snr import scale_invariant_signal_noise_ratio, signal_noise_ratio
----> 9 from torchmetrics.utilities.prints import _deprecated_root_import_func
12 def _permutation_invariant_training(
13 preds: Tensor,
14 target: Tensor,
(...)
18 **kwargs: Any
19 ) -> Tuple[Tensor, Tensor]:
20 """Wrapper for deprecated import.
21
22 >>> from torch import tensor
(...)
34
35 """
ImportError: cannot import name '_deprecated_root_import_func' from 'torchmetrics.utilities.prints' (C:\ProgramData\Anaconda3\envs\ldm\lib\site-packages\torchmetrics\utilities\prints.py)
主要是这句
ImportError: cannot import name '_deprecated_root_import_func' from 'torchmetrics.utilities.prints' (C:\ProgramData\Anaconda3\envs\ldm\lib\site-packages\torchmetrics\utilities\prints.py)
这是因为anomalib与torchmetrics版本不匹配,先卸载anomalib,然后使用pip重新安装anomalib即可,此时anaconda会自动安装对应版本的torchmetrics。
pip install anomalib