При заархивировании двух загрузчиков данных с двумя циклами и одного загрузчика данных на последнем шаге два загрузчика данных с двумя циклами вели себя по-разному. - PullRequest
0 голосов
/ 09 мая 2019
unlabelledloader2 = torch.utils.data.DataLoader(train_data, batch_size=batch_size, sampler = unlabelled_sampler2,  num_workers=workers, pin_memory=True)
unlabelledloader = torch.utils.data.DataLoader(train_data, batch_size=batch_size, sampler = unlabelled_sampler,  num_workers=workers, pin_memory=True)
train_loader= torch.utils.data.DataLoader(train_data, batch_size=batch_size, sampler = train_sampler,  num_workers=workers, pin_memory=True)
for (input, target), (u, _), (u2, _) in zip(cycle(trainloader), unlabelledloader, cycle(unlabelledloader2):

И у Trainloader, и у unlabelledloader2 есть 1000 образцов, в то время как у unlabelledloader есть 2037 образцов.Все они настроены на 100 сэмплов каждый шаг.

На последнем шаге я ожидал, что unlabelledloader выберет 37 выборок, в то время как trainloader и unlabelledloader2 получат одинаковое количество выборок, либо 37, либо 100. Однако, происходит странная вещь, загрузчик trainp выскочил 37, ноunlabelledloader2 вытолкнул 100.

Может кто-нибудь объяснить это?Большое спасибо!

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