You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

torch.cuda.is_available()显示True但运行特定项目报No CUDA GPUs available求助

排查思路
  • 检查项目代码的设备指定逻辑
    打开项目的imagenet.py,排查是否存在硬编码指定CPU设备的代码(比如torch.device('cpu')),或者是否有参数控制设备选择(比如--cpu)被误触发。同时确认模型加载、数据处理环节的设备分配逻辑是否正确。
  • 验证运行环境一致性
    在项目目录下执行以下命令,确认当前环境的PyTorch和CUDA状态:
    python -c "import torch; print(torch.cuda.is_available()); print(torch.__version__); print(torch.version.cuda)"
    
    对比输出和你测试torch.cuda.is_available()时的环境信息,确保两者是同一个Python环境(比如同个conda虚拟环境),PyTorch、CUDA版本完全匹配。
  • 检查模型Checkpoint的设备兼容性
    加载的Checkpoint文件可能是在CPU环境下保存的,或者未正确记录设备信息。可以修改模型加载代码,显式指定CUDA设备:
    checkpoint = torch.load(args.load, map_location='cuda')
    model.load_state_dict(checkpoint['state_dict'])
    
  • 排查GPU资源占用情况
    执行nvidia-smi命令查看GPU的显存占用和进程列表,确认没有其他进程耗尽GPU资源或独占设备。如果有高占用进程,关闭后重新运行项目命令。
  • 分析MixBN模块的设备处理逻辑
    项目使用了--mixbn参数,该特性可能涉及多设备或分布式配置。查看MixBN相关代码,确认是否在初始化时错误禁用了CUDA,或者是否需要额外的分布式环境设置(如torch.distributed.init_process_group)而当前环境未满足。
  • 临时禁用MixBN测试
    去掉--mixbn参数,执行以下命令测试:
    python imagenet.py -a resnet50 --data %DATA% --evaluate --load %CKPT%
    
    如果运行正常,说明问题出在MixBN模块的设备处理逻辑上,可针对性调试该部分代码。

内容的提问来源于stack exchange,提问作者Hemfri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 01:03:22