鱼C论坛

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

datafram 转换成张量

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

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

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

x
  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)
  6. y_valid = torch.tensor(y_val.astype(np.float32).values, dtype=torch.float32)
复制代码


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

  9. AttributeError: 'Tensor' object has no attribute 'astype'
复制代码
小甲鱼最新课程 -> https://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 张量。

以下是正确的代码:

  1. import numpy as np
  2. import torch

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

  9. X_train_tensor = torch.tensor(X_train_np, dtype=torch.float32).cuda()
  10. y_train_tensor = torch.tensor(y_train_np, dtype=torch.float32).cuda()
  11. X_val_tensor = torch.tensor(X_val_np, dtype=torch.float32)
  12. y_val_tensor = torch.tensor(y_val_np, dtype=torch.float32)
复制代码


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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-19 17:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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