Как перебирать составной набор данных в pytorch без перекрывающихся пакетов?Python

Программы на Python
Ответить
Anonymous
 Как перебирать составной набор данных в pytorch без перекрывающихся пакетов?

Сообщение Anonymous »

Я ищу способ соединить два набора данных в один, чтобы его можно было обучать за один цикл. Однако пакеты не могут смешиваться между наборами данных. В следующем примере должны быть только партии в диапазоне от 1 до 10 и от 41 до 50:

Код: Выделить всё

import pandas as pd
import torch
from torch.utils.data import Dataset, DataLoader, ConcatDataset

df1 = pd.DataFrame(list(range(1,11)))
df2 = pd.DataFrame(list(range(41,51)))

class testset(Dataset):
def __init__(self,data):
self.data = data

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

def __getitem__(self, index):
return self.data[0][index]

testdataset1 = testset(df1)
testdataset2 = testset(df2)

datasets = []
datasets.append(testdataset1)
datasets.append(testdataset2)

concat_dataset = ConcatDataset(datasets)

loader = DataLoader(
concat_dataset,
shuffle=False,
num_workers=0,
batch_size=3
)

for data in loader:
print(data)
tensor([1, 2, 3])
tensor([4, 5, 6])
tensor([7, 8, 9])
tensor([10, 41, 42]) ← Этого не должно быть
tensor([43, 44, 45])
tensor([46, 47, 48])
tensor([49, 50])
В реальном случае я объединяю два временных ряда, где перекрытие в пакетах значений обоих наборов данных вызывает небольшие проблемы…
Это не должно быть проблемой, верно?

Подробнее здесь: https://stackoverflow.com/questions/683 ... ed-batches
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»