计算损失函数时RuntimeError: expected device cpu and dtype Float but got device cuda:0 and dtype Float

我用pytorch计算损失函数时出现了RuntimeError: expected device cpu and dtype Float but got device cuda:0 and dtype Float。
当时想法是,无论是训练的数据还是定义的模型都通过xx.to(device=device) 放到GPU中去了,所以所有的计算应该是在GPU上进行,因而不应该出现这种错误。然后去网上查了一下说是pytorch版本不对,然后我更换了分别更换了高、低pytorch版本,发现这问题依旧存在。
其实这问题是出在模型自定义损失函数上的,因为使用我自己定义的损失函数时可以正常运行。事实上,这是因为模型自定义的损失函数是在CPU上的,所以才会出现这种bug,找到了问题就很容易解决了。只需在损失函数后面加上.cuda()就行了
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值