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

GPU已识别但Torch模型无法运行:输入与权重设备不匹配报错

问题分析与解决

错误根源

这个错误的核心是输入张量在CPU上,而模型权重在GPU上,两者设备不匹配。你代码里的关键问题是:PyTorch的to()方法是返回一个新的张量对象,不会原地修改原张量,你调用expanded_tensor.to(self.device)后没有把返回值赋值给原变量,导致输入还是停留在CPU上。

具体修复步骤

  1. 修正输入张量的设备转移
    在preprocess_image方法中,把这一行:

    expanded_tensor.to(self.device)
    

    修改为:

    expanded_tensor = expanded_tensor.to(self.device)
    

    这样才会真正把输入张量转移到指定的GPU设备上。

  2. 可选:验证模型与张量的设备一致性
    可以在startup_model方法末尾添加一行代码,确认模型权重确实在GPU上:

    print("模型权重设备:", next(self.classifier.parameters()).device)
    

    在preprocess_image中添加一行确认输入张量设备:

    print("输入张量设备:", expanded_tensor.device)
    

    确保两者输出都是cuda:0。

  3. 清理冗余代码
    你代码里的interpolated_image = self.provided_image.resize((w, h), Image.BILINEAR)完全冗余,因为w,h就是原图的尺寸,resize成一样的没有意义,可以直接删除这一行,用原图处理即可。

额外检查点

  • 确认startup_model方法已经被正确调用,否则模型不会被转移到GPU上。
  • 权重加载部分load('path/to/my/models/79999_iter.pth', device('cuda:0'))已经指定了GPU设备,这部分没问题,但要确保权重文件路径正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:06:14