Как указал Харан Раджкумар , гораздо лучшее решение будет включать в себя конкатенацию обоих наборов данных заранее и применение torch.utils.DataLoader
после этого (при условии, что оба объекта torch.utils.Dataset
содержат изображения в том же порядке в начале ).
Обратите внимание, что для выполнения этой операции не нужно создавать отдельный класс, torch.utils.data.ConcatDataset
предоставляет эту функциональность "из коробки".
Не уверен насчет вашего точного кода, но этого должно быть достаточно (или, по крайней мере, достаточно, чтобы направить вас в нужном направлении):
import torch
dataloader = torch.utils.data.DataLoader(
torch.utils.data.ConcatDataset(dataset, dataset_gray),
batch_size=batch_size,
shuffle=True,
num_workers=workers
)
for i, (data, data_gray) in enumerate(dataloader):
doStuff()
Как видите, он намного удобнее для чтения и использования.