Я ищу способ соединить два набора данных в один, чтобы его можно было обучать за один цикл. Однако пакеты не могут смешиваться между наборами данных. В следующем примере должны быть только партии в диапазоне от 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])
В реальном случае я объединяю два временных ряда, где перекрытие в пакетах значений обоих наборов данных вызывает небольшие проблемы…
Это не должно быть проблемой, верно?
Я ищу способ соединить два набора данных в один, чтобы его можно было обучать за один цикл. Однако пакеты не могут смешиваться между наборами данных. В следующем примере должны быть только партии в диапазоне от 1 до 10 и от 41 до 50: [code]import pandas as pd import torch from torch.utils.data import Dataset, DataLoader, ConcatDataset
for data in loader: print(data) [/code] tensor([1, 2, 3]) tensor([4, 5, 6]) tensor([7, 8, 9]) [b]tensor([10, 41, 42])[/b] ← Этого не должно быть tensor([43, 44, 45]) tensor([46, 47, 48]) tensor([49, 50]) В реальном случае я объединяю два временных ряда, где перекрытие в пакетах значений обоих наборов данных вызывает небольшие проблемы… Это не должно быть проблемой, верно?