鱼C论坛

 找回密码
 立即注册
查看: 85|回复: 1

datafram 转换成张量

[复制链接]
发表于 2024-10-26 22:58:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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[46], 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'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 19:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表