У меня есть файл .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, предназначенное для загрузки набора данных изображений.
Мой вопрос таков: поскольку у меня совершенно другой набор данных, то, что я делаю, целесообразно для моего случая, или есть какой-то другой способ, которым я должен загружать и обрабатывать мои данные более эффективно?