bug解决:AssertionError: No inf checks were recorded for this optimizer.

这真的是最恶心的一个error(比网络回传找哪层没有传播到还要恶心!),找了好久的问题所在之处,最后偶然发现了这篇文章:

解决pytorch半精度amp训练nan问题 - 知乎

 然后发现自己用的混合精度训练,发现问题解决问题,谨此记录,方便查阅。

睡觉,晚安!

### 解决方案 当遇到 `AssertionError: Torch not compiled with CUDA enabled` 错误时,这表明当前安装的 PyTorch 版本不支持 CUDA 或者未正确配置 GPU 支持。以下是针对 A 卡(AMD 显卡)环境的具体解决方案。 #### 1. 验证硬件和驱动程序兼容性 在解决问题之前,需确认显卡是否支持 ROCm(Radeon Open Compute Platform),这是 AMD 提供的一种开源计算框架[^3]。运行以下命令来验证系统是否已启用 ROCm: ```bash rocm-smi ``` 如果显示正常,则说明 ROCm 已经被正确安装;否则需要先安装 ROCm 并更新相关驱动程序[^1]。 #### 2. 安装适合的 PyTorch 版本 对于基于 AMD Radeon 的设备,PyTorch 社区提供了专门适配 ROCm 的构建版本。可以通过以下 pip 命令安装最新版支持 ROCm 的 PyTorch: ```bash pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.4.2 ``` 上述 URL 中指定了特定于 ROCm 的镜像源地址,请根据实际使用的 ROCm 版本来调整链接中的版本号[^2]。 #### 3. 测试 CUDA 和 GPU 可用性 完成安装之后,在 Python 脚本或者交互式环境中执行如下代码片段测试设置是否生效: ```python import torch print("是否可用:", torch.cuda.is_available()) # 如果返回 True 表明可以访问到至少一块 NVIDIA 设备; 对于 A 卡应改为 rocm_is_available() print("GPU 数量:", torch.cuda.device_count()) print("torch 方法查看 CUDA 版本:", torch.version.cuda) print("当前 GPU 索引号:", torch.cuda.current_device()) ``` 注意这里提到的是 cuda 函数系列调用,而实际上对于 AMD 架构应当替换为对应的 roc 函数接口实现。 --- ###
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值