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

d3rlpy设置use_gpu=True后训练未使用GPU问题求助

d3rlpy训练时GPU不生效排查方案
  • use_gpu参数设置方式错误
    别在模型实例化完了再改use_gpu属性,d3rlpy初始化的时候就会读取设备配置构建网络、绑定优化器,事后修改属性根本不会触发内部的设备迁移逻辑,训练循环也读不到这个改动。正确写法是初始化算法的时候直接把参数传进去:
    the_model = continuous_models[_model](scaler=scaler, use_gpu=True)
    
    如果要指定具体显卡,直接传对应显卡序号即可,比如use_gpu=0对应第一块CUDA设备。
  • 先确认模型实际运行设备
    别光看系统监控的GPU占用率就判定没走GPU,训练启动前加一行代码打印模型参数所在的实际设备:
    print(next(the_model.impl.q_function.parameters()).device)
    
    如果输出为cuda:0类结果,说明模型已经加载到显卡,利用率低基本是数据加载、预处理全在CPU侧运行形成IO瓶颈,显卡一直在等数据所以看起来没在工作;如果输出为cpu才是真的设备配置未生效。
  • 手动强制迁移设备绕过build阶段默认fallback
    如果正确传参后还是识别不到GPU,可以在build_with_dataset执行完成、调用fit之前,手动执行一次设备迁移,强制把模型所有组件搬到显卡:
    the_model.build_with_dataset(dataset)
    the_model.to("cuda")
    
  • 排查手动构造Scaler导致的设备不匹配问题
    手动传入numpy数组构造的StandardScaler时,部分d3rlpy版本不会自动把scaler的均值、方差参数迁移到GPU,训练时CPU、GPU张量混用会触发框架自动fallback到CPU运行。可以直接在初始化算法时传scaler="standard",让框架自动基于数据集计算归一化参数,自动适配运行设备,避免手动构造scaler带来的设备不一致问题。
  • 检查版本兼容问题
    0.9版本之前的旧版d3rlpy存在CUDA设备识别逻辑bug,和适配CUDA11.6的高版本PyTorch搭配时经常出现GPU配置失效的问题,先升级到最新稳定版:
    pip install --upgrade d3rlpy
    
    升级完成后重新运行代码验证即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:42:18