使用pytorch时遇到的错误Expected object of scalar type Long but got scalar type Float for argument #2 ‘target

一.错误:

使用pytorch搭建GCN网络时遇到错误:Expected object of scalar type Long but got scalar type Float for argument #2 ‘target’

二.原因及解决方法:

这句话表面上是说需要Long类型,我提供给他的是float类型,然后我把所有的变量都变成了long,发现还是不对。后来我把输入和输出x和y变成了float,因为我使用的是GCN网络,输入的边的邻接矩阵变成long,发现正确了。将float类型的tensor转换为long类型的编码如下:

labels = labels.to(device=device, dtype=torch.int64)

如何labels是dataframe格式的,那么转换为long型的tensor的格式的编程如下:

labels=torch.tensor(labels, dtype=torch.long) 

遇到这种问题一定要静下心来检查自己各种变量的数据类型,不一定非得是float没有变成long,重要的是看类型是否符合逻辑。

参考链接:

https://discuss.pytorch.org/t/expected-object-of-scalar-type-long-but-got-scalar-type-float-for-argument-2-target/33102

如果觉得这篇文章很赞,打个赏吧,码字不易,8块10块不嫌多,1毛两毛也能过。

  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skj1995

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值