【Pytorch】BUG RuntimeError: Found dtype Long but expected Float

说明此时需要float型数据,但识别到long型数据,此时需要对入参和出参做一下类型转换

output=output.to(torch.float32)
target=target.to(torch.float32)

举例

output =net(input)
target = variable(t.arange(0,10))

#the point
output=output.to(torch.float32)
target=target.to(torch.float32)

criterion = nn.MSELoss()
loss = criterion(output,target)

net.zero_grad()
print("反向传播之前conv1.bias的梯度")
print(net.conv1.bias.grad)
loss.backward()          #此处疑难杂症  先跳过
print("反向传播之后conv1.bias的梯度")
print(net.conv1.bias.grad)

RuntimeError: Found dtype Long but expected Float - 简书以上成功解决我的bug

还有一种

PyTorch出现错误“RuntimeError: Found dtype Double but expected Float”_墨门-CSDN博客

torch_tensor = torch_tensor.float()

小提示——使用double()则会占用很多显存,很可能出现显存爆炸的情况,所以最后还是使用FloatTensor类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值