【模型训练】解决问题:RuntimeError: Expected all tensors to be on the same device, but......


1 报错内容

  • RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu! (when checking argument for argument mat2 in method wrapper_mm)

2 解决方法

  • 报错处的最后一行如下,需要在linear.py文件中将其修改。
File "/.../torch/nn/modules/linear.py", line xx, in forward 
return F.linear(input, self.weight, self.bias)
  • 由于在服务器中调用的是内置文件,并不能直接修改,因此需要转到该路径,然后使用文本编辑器(vim)修改其中的代码,具体操作如下。
vim /.../torch/nn/modules/linear.py
  • 源代码为:
def forward(self, input: Tensor) -> Tensor:
        return F.linear(input, self.weight, self.bias)
  • 修改为:
    def forward(self, input: Tensor) -> Tensor:
        device = input.device
        return F.linear(input, self.weight.to(device), self.bias)
  • 输入英文状态的 i 进入编辑模式,修改结束后按ESC退出编辑模式,然后输入:wq并按回车保存退出即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值