将 CSV 解析为 Pytorch 张量

问题描述 投票:0回答:5

我有一个 CSV 文件,其中包含除标题行之外的所有数值。当尝试构建张量时,我遇到以下异常:

Traceback (most recent call last):
  File "pytorch.py", line 14, in <module>
    test_tensor = torch.tensor(test)
ValueError: could not determine the shape of object type 'DataFrame'

这是我的代码:

import torch
import dask.dataframe as dd

device = torch.device("cuda:0")

print("Loading CSV...")
test = dd.read_csv("test.csv", encoding = "UTF-8")
train = dd.read_csv("train.csv", encoding = "UTF-8")

print("Converting to Tensor...")
test_tensor = torch.tensor(test)
train_tensor = torch.tensor(train)

使用

pandas
而不是
Dask
进行 CSV 解析会产生相同的错误。我还尝试在对
dtype=torch.float64
的调用中指定
torch.tensor(data)
,但再次遇到相同的错误。

python pandas pytorch
5个回答
23
投票

先尝试将其转换为数组:

test_tensor = torch.Tensor(test.values)

14
投票

我想你只是错过了

.values

import torch
import pandas as pd

train = pd.read_csv('train.csv')
train_tensor = torch.tensor(train.values)

7
投票

新版本的 pandas 强烈建议使用

to_numpy
而不是
values

train_tensor = torch.tensor(train.to_numpy())

1
投票

仅使用 NumPy

import numpy as np
import torch

tensor = torch.from_numpy(
    np.genfromtxt("train.csv", delimiter=",")
)

0
投票

导入功能似乎都需要带有数字数组的 .csv。您在原始问题案例中提到您的 .csv 包含列标题。请尝试在 .csv 文件中不包含标题的代码。

© www.soinside.com 2019 - 2024. All rights reserved.