将 Pytorch 的张量元素转换为 "float" 类型而不是 "double"
Casting Pytorch's tensor elements the type "float" instead of "double"
我有一个矩阵保存为 numpy 类型,称之为“X_before”(例如,它的形状是 100*30)。
因为我想使用 Pytorch 库将它提供给 AutoEncoder,所以我将它转换为 torch.tensor
,如下所示:
X_tensor = torch.from_numpy(X_before, dtype=torch)
然后,我得到以下错误:
expected scalar type Float but found Double
接下来,我尝试将元素做成“float”然后转换它们torch.tensor:
X_before = X_before.astype(float)
X_tensor = torch.from_numpy(X_before)
再次出现同样的错误。
我应该如何解决这个问题?如何将 torch.tensor 对象中的元素类型转换为另一种类型?
提前致谢
最简单的方法:
X_tensor = torch.tensor(X_before, dtype=torch.float32)
您可以在此处查看类型列表:
https://pytorch.org/docs/stable/tensors.html
您可以更改类型:
X_tensor=X_tensor.type(torch.float64)
(注意float64是double,而float32是标准的float)
我有一个矩阵保存为 numpy 类型,称之为“X_before”(例如,它的形状是 100*30)。
因为我想使用 Pytorch 库将它提供给 AutoEncoder,所以我将它转换为 torch.tensor
,如下所示:
X_tensor = torch.from_numpy(X_before, dtype=torch)
然后,我得到以下错误:
expected scalar type Float but found Double
接下来,我尝试将元素做成“float”然后转换它们torch.tensor:
X_before = X_before.astype(float)
X_tensor = torch.from_numpy(X_before)
再次出现同样的错误。 我应该如何解决这个问题?如何将 torch.tensor 对象中的元素类型转换为另一种类型?
提前致谢
最简单的方法:
X_tensor = torch.tensor(X_before, dtype=torch.float32)
您可以在此处查看类型列表: https://pytorch.org/docs/stable/tensors.html
您可以更改类型:
X_tensor=X_tensor.type(torch.float64)
(注意float64是double,而float32是标准的float)