(报错)RuntimeError: expected scalar type Float but found Long

报错代码

import torch

def synthetic_data(w,b,num_examples):
    X = torch.normal(0,1,(num_examples,len(w)))
    y = torch.matmul(X,w) + b
    y += torch.normal(0,0.01,y.shape)
    return X,y.reshape((-1,1))

true_w = torch.tensor([2,-3,4])
true_b = 4.2
features,labels = synthetic_data(true_w,true_b,1000)
print('features:',features[0],'\nlabels:',labels[0

错误信息

E:\tool\anaconda\envs\pytorch_38\python.exe "E:\deep_learning\chapter_1\4_Linear regression.py" 
Traceback (most recent call last):
  File "E:\deep_learning\chapter_1\4_Linear regression.py", line 17, in <module>
    features,labels = synthetic_data(true_w,true_b,1000)
  File "E:\deep_learning\chapter_1\4_Linear regression.py", line 11, in synthetic_data
    y = torch.matmul(X,w) + b
RuntimeError: expected scalar type Float but found Long

Process finished with exit code 1

此错误是因为features,labels = synthetic_data(true_w,true_b,1000)中true_w在传递参数时是torch.long型数据,而y = torch.matmul(X,w)中需要torch.float型,因此在定义true_w时显性定义为float型

true_w = torch.tensor([2,-3,4],dtype=torch.float32)

然后代码正常运行

E:\tool\anaconda\envs\pytorch_38\python.exe "E:\deep_learning\chapter_1\4_Linear regression.py" 
features: tensor([-0.1643, -1.1914,  0.7178]) 
labels: tensor([10.3341])

Process finished with exit code 0

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值