Загрузка данных из CSV с использованием DataLoader - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть файл .csv в следующем формате:

x1, x2, y, x3, x4
05  05  0  00  12
01  09  1  00  17
       ...
13  24  0  01  00

Я создал следующий класс, который поможет мне загрузить мои данные с DataLoader, чтобы перемешать их и прочитатьэто в пакетном режиме, а также применять любые возможные преобразования, которые я мог бы (например, нормализовать) с конечной целью создания простого RNN.

class MyDataset(Dataset):    
    def __init__(self, csv_file, transform=None):
        self.data_frame = pd.read_csv(csv_file)
        self.transform = transform

    def __len__(self):
        return len(self.data_frame)

    def __getitem__(self, idx):
        m_data = self.data_frame.iloc[idx, :].as_matrix()
        m_data = m_data.astype('float')
        sample = {'y': np.array([m_data[2]]), 'x': np.delete(m_data, 2)}

        if self.transform:
            sample = self.transform(sample)

        return sample

Затем я могу загрузить свои данные с чем-то вроде

dataset = MyDataset(csv_file=file, transform=transforms.Compose([ToTensor()]))    
dataloader = DataLoader(dataset, batch_size=4, shuffle=True, num_workers=4)

Это это руководство по от PyTorch, предназначенное для загрузки набора данных изображений.

Мой вопрос таков: поскольку у меня совершенно другой набор данных, то, что я делаю, целесообразно для моего случая, или есть какой-то другой способ, которым я должен загружать и обрабатывать мои данные более эффективно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...