python代码转换为pytorch_python – Pytorch:将FloatTensor转换为DoubleTensor

在使用PyTorch的TensorDataset和DataLoader时,遇到将numpy数组转换为张量后,一个转换为FloatTensor,另一个转换为DoubleTensor导致的TypeError。尝试使用.double()方法进行类型转换未成功。问题出现在`output.addmm_(0, 1, input, weight.t())`这行代码,因张量类型不匹配引发错误。" 109541098,9742690,C语言实现排序算法,"['C语言', '排序算法']
摘要由CSDN通过智能技术生成

我有2个numpy数组,我将其转换为张量以使用TensorDataset对象.

import torch.utils.data as data_utils

X = np.zeros((100,30))

Y = np.zeros((100,30))

train = data_utils.TensorDataset(torch.from_numpy(X).double(), torch.from_numpy(Y))

train_loader = data_utils.DataLoader(train, batch_size=50, shuffle=True)

当我做:

for batch_idx, (data, target) in enumerate(train_loader):

data, target = Variable(data), Variable(target)

optimizer.zero_grad()

output = model(data) # error occurs here

我得到了以下错误:

TypeError: addmm_ received an invalid combination of arguments – got (int, int, torch.DoubleTensor, torch.FloatTensor), but expected one of:

[…]

* (float beta, float alpha, torch.DoubleTensor mat1, torch.DoubleTensor mat2)

didn’t match because some of the arguments have invalid types: (int, int, torch.DoubleTensor, torch.FloatTensor)

* (float beta, float alpha, torch.SparseDoubleTensor mat1, torch.DoubleTensor mat2)

didn’t match because some of the arguments have invalid types: (int, int, torch.DoubleTensor, torch.FloatTensor)

最后一个错误来自:

output.addmm_(0, 1, input, weight.t())

正如你在我的代码中看到的那样,我尝试使用.double()来转换张量 – 但这不起作用.为什么他将一个数组转换为FloatTensor对象而另一个数组转换为DoubleTensor?

有任何想法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值