将 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)