Colab运行PyTorch报Expected all tensors to be on the same device错误求助
问题排查方案
- 最高概率诱因:未将模型整体移动到GPU,你当前仅将输入张量、标签张量移动到了cuda设备,但模型的所有权重(包括Embedding层、linear1、linear2的可训练参数)默认创建在CPU上,必须显式调用代码完成模型设备迁移:
model = model.to(device)
该问题占这类设备不匹配报错的90%以上,优先验证。
- 次要排查点:损失函数的可学习参数/权重设备匹配,如果你定义损失函数时传入了自定义类间权重
weight参数,需要确保该权重张量也通过.to(device)移动到了GPU,否则计算损失时也会触发设备不匹配错误。 - 快速定位校验代码:可以在
log_probs = model(context_vector)前插入以下打印代码,直接确认设备不匹配的具体来源:
# 打印输入张量设备 print("输入张量设备:", context_vector.device) # 打印模型第一个参数的设备 print("模型参数设备:", next(model.parameters()).device)
如果两个输出不一致即可确认是模型未迁移的问题,按第一条方案修复即可。
内容的提问来源于stack exchange,提问作者Cong-Phuoc Phan
相关产品推荐
相关产品推荐

