EDSR出现AttributeError: module 'torch.backends' has no attribute 'mps'
时间: 2025-04-27 19:30:23 浏览: 32
### 解决 `torch.backends` 中缺少 `mps` 属性的问题
当遇到 `torch.backends` 没有 `mps` 属性的情况时,这通常是因为所使用的 PyTorch 版本不支持 MPS (Metal Performance Shaders),或者操作系统不是 macOS[^1]。
对于这个问题,可以采取以下几种方法来解决:
#### 方法一:更新PyTorch版本
确保安装的是最新版的 PyTorch。MPS 支持是在较新的 PyTorch 版本中加入的功能之一。可以通过 pip 或 conda 更新到最新的稳定版本:
```bash
pip install --upgrade torch torchvision torchaudio
```
或是通过 Conda 安装指定带有 MPS 加速功能的新版本:
```bash
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch-nightly
```
需要注意的是,在某些情况下可能需要使用特定标签如 `-c pytorch-nightly` 来获取包含实验性特性的夜间构建版本。
#### 方法二:检查操作系统的兼容性
确认当前的操作系统是否为 macOS Monterey 及以上版本。因为只有这些版本才原生提供了对 Metal 的支持,进而允许 PyTorch 使用 MPS 进行加速计算。
如果上述两种方式都不能解决问题,则可能是由于硬件或软件环境的原因导致无法启用 MPS 后端。此时建议考虑其他替代方案,比如切换回 CPU 或者 CUDA 设备来进行模型训练和推理工作。
```python
if not torch.backends.mps.is_available():
if not torch.backends.mps.is_built():
print("MPS not available because the current PyTorch installation was "
"not built with MPS enabled.")
elif not torch.cuda.is_available():
print("MPS not available because no compatible GPU found.")
else:
device = 'mps'
print(f'Using {device} device')
```
阅读全文
相关推荐

















