运行SelfPAB仓库时遇torch.library无register_fake属性错误求解决
问题:部署SelfPAB训练时出现AttributeError: module 'torch.library' has no attribute 'register_fake'
我在本地部署SelfPAB仓库,已完成数据集下载,但执行训练命令时触发如下报错:
File "C:\Users\My PC\Desktop\CCPS\helpmepleaserun\SelfPAB\loo_cross_validation.py", line 3, in <module> import train File "C:\Users\My PC\Desktop\CCPS\helpmepleaserun\SelfPAB\train.py", line 8, in <module> import src.datasets File "C:\Users\My PC\Desktop\CCPS\helpmepleaserun\SelfPAB\src\datasets.py", line 11, in <module> import src.utils File "C:\Users\My PC\Desktop\CCPS\helpmepleaserun\SelfPAB\src\utils.py", line 10, in <module> import torchmetrics File "D:\anaconda3\envs\mynewenv\lib\site-packages\torchmetrics\__init__.py", line 14, in <module> from torchmetrics import functional # noqa: E402 File "D:\anaconda3\envs\mynewenv\lib\site-packages\torchmetrics\functional\__init__.py", line 14, in <module> from torchmetrics.functional.audio.pit import permutation_invariant_training, pit_permutate File "D:\anaconda3\envs\mynewenv\lib\site-packages\torchmetrics\functional\audio\__init__.py", line 14, in <module> from torchmetrics.functional.audio.pit import permutation_invariant_training, pit_permutate # noqa: F401 File "D:\anaconda3\envs\mynewenv\lib\site-packages\torchmetrics\functional\audio\pit.py", line 21, in <module> from torchmetrics.utilities.imports import _SCIPY_AVAILABLE File "D:\anaconda3\envs\mynewenv\lib\site-packages\torchmetrics\utilities\__init__.py", line 1, in <module> from torchmetrics.utilities.checks import check_forward_full_state_property # noqa: F401 File "D:\anaconda3\envs\mynewenv\lib\site-packages\torchmetrics\utilities\checks.py", line 22, in <module> from torchmetrics.utilities.data import select_topk, to_onehot File "D:\anaconda3\envs\mynewenv\lib\site-packages\torchmetrics\utilities\data.py", line 19, in <module> from torchmetrics.utilities.imports import _TORCH_GREATER_EQUAL_1_6, _TORCH_GREATER_EQUAL_1_7, _TORCH_GREATER_EQUAL_1_8 File "D:\anaconda3\envs\mynewenv\lib\site-packages\torchmetrics\utilities\imports.py", line 117, in <module> _TORCHVISION_GREATER_EQUAL_0_8: Optional[bool] = _compare_version("torchvision", operator.ge, "0.8.0") File "D:\anaconda3\envs\mynewenv\lib\site-packages\torchmetrics\utilities\imports.py", line 79, in _compare_version return _bootstrap._gcd_import(name[level:], package, level) File "D:\anaconda3\envs\mynewenv\lib\site-packages\torchvision\__init__.py", line 10, in <module> from torchvision import _meta_registrations, datasets, io, models, ops, transforms, utils # usort:skip File "D:\anaconda3\envs\mynewenv\lib\site-packages\torchvision\_meta_registrations.py", line 163, in <module> @torch.library.register_fake("torchvision::nms") AttributeError: module 'torch.library' has no attribute 'register_fake'
当前使用的torch版本为2.5.0.dev20240626 py3.9_cuda12.1_cudnn9_0,已尝试更新torch但问题未解决,求修复方法。
修复方法
- 严格匹配torch与torchvision版本:你使用的是torch开发预览版,对应的torchvision版本可能未同步兼容。
torch.library.register_fake是特定版本torch才支持的API,可选择降级到稳定版torch并安装对应匹配的torchvision:pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu121 - 对齐torchmetrics版本:torchmetrics与torch、torchvision版本不兼容会引发连锁导入错误,建议查看SelfPAB仓库的
requirements.txt文件,安装指定版本的torchmetrics:pip install -r requirements.txt - 重建干净的虚拟环境:若当前环境依赖混乱,直接新建conda环境从头配置:
conda create -n selfpab_env python=3.9 conda activate selfpab_env # 安装适配cuda12.1的稳定版torch套件 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # 安装仓库所有依赖 pip install -r requirements.txt
内容的提问来源于stack exchange,提问作者aerial
相关产品推荐
相关产品推荐

