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

torch.cuda.is_available()返回True但加载模型报CUDA不可用如何解决

解决方案

你遇到的交互环境CUDA可用、脚本运行报错的核心原因是两个场景的运行环境/环境变量不一致,按以下步骤排查即可:

  • 第一步:确认脚本运行环境和交互环境是否一致
    在报错脚本的最开头加入以下代码,执行后输出结果:
import torch
import sys
import os

# 输出当前Python解释器路径,和交互环境执行`import sys; print(sys.executable)`的结果对比
print("当前Python解释器路径:", sys.executable)
print("当前PyTorch版本:", torch.__version__)
print("脚本内CUDA可用状态:", torch.cuda.is_available())
print("CUDA可见设备变量:", os.environ.get("CUDA_VISIBLE_DEVICES"))

如果两个场景的Python解释器路径不同,说明脚本使用的Python环境没有安装带CUDA支持的PyTorch版本,切换到你测试的交互环境运行脚本即可。

  • 第二步:排查CUDA可见设备环境变量
    如果第一步确认解释器路径一致,看输出的CUDA_VISIBLE_DEVICES值,如果为-1或者空值,说明你运行脚本的终端环境设置了屏蔽GPU的环境变量。Linux环境可执行export CUDA_VISIBLE_DEVICES=0恢复,Windows环境可执行set CUDA_VISIBLE_DEVICES=0恢复后再运行脚本。

  • 第三步:兼容写法适配所有场景
    不管上述排查结果如何,都可以直接使用兼容CPU/GPU环境的模型加载写法,避免反序列化报错:

# 自动适配当前设备
load_device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = torch.load("你的模型文件路径", map_location=load_device)

该写法无需修改原有逻辑,同时适配有CUDA、无CUDA的运行环境,比固定映射到CPU的方案更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:15:03