Terence888 发表于 2024-10-26 22:58:08

datafram 转换成张量

#dataframe转化为tensor
#将DataFrame数据转换为NumPy数组,然后再转换为PyTorch张量
X_train = torch.tensor(X_train.astype(np.float32).values, dtype=torch.float32).cuda()
y_train = torch.tensor(y_train.astype(np.float32).values, dtype=torch.float32)
X_valid = torch.tensor(X_val.astype(np.float32).values, dtype=torch.float32)
y_valid = torch.tensor(y_val.astype(np.float32).values, dtype=torch.float32)

上述代码报错---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In, line 3
      1 #dataframe转化为tensor
      2 #将DataFrame数据转换为NumPy数组,然后再转换为PyTorch张量
----> 3 X_train = torch.tensor(X_train.astype(np.float32).values, dtype=torch.float32).cuda()
      4 y_train = torch.tensor(y_train.astype(np.float32).values, dtype=torch.float32)
      5 X_valid = torch.tensor(X_val.astype(np.float32).values, dtype=torch.float32)

AttributeError: 'Tensor' object has no attribute 'astype'

FishC 发表于 2024-10-26 23:05:00

这个错误是因为你已经将 `X_train` 转换为了 PyTorch 张量,然后再次调用 `.astype` 方法,该方法属于 NumPy 数组,而不属于 PyTorch 张量。因此,会出现 `AttributeError: 'Tensor' object has no attribute 'astype'` 错误。

可以按照以下步骤确保正确地将 DataFrame 转换为 PyTorch 张量:

1. 先将 DataFrame 转换为 NumPy 数组。
2. 再将 NumPy 数组转换为 PyTorch 张量。

以下是正确的代码:

import numpy as np
import torch

# 假设 X_train、y_train、X_val 和 y_val 是 pandas DataFrame
# 先将 DataFrame 转换为 NumPy 数组,然后再转换为 PyTorch 张量
X_train_np = X_train.astype(np.float32).values
y_train_np = y_train.astype(np.float32).values
X_val_np = X_val.astype(np.float32).values
y_val_np = y_val.astype(np.float32).values

X_train_tensor = torch.tensor(X_train_np, dtype=torch.float32).cuda()
y_train_tensor = torch.tensor(y_train_np, dtype=torch.float32).cuda()
X_val_tensor = torch.tensor(X_val_np, dtype=torch.float32)
y_val_tensor = torch.tensor(y_val_np, dtype=torch.float32)

请确保在运行上述代码前,有正确导入需要的库:`import numpy as np` 和 `import torch`。

这样处理后,你不会再遇到 `AttributeError`,并且可以顺利将 DataFrame 转换为 PyTorch 张量。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: datafram 转换成张量