IndexError при итерации моего набора данных с использованием Dataloader в PyTorch - PullRequest
0 голосов
/ 17 декабря 2018

Я итерировал свой набор данных, используя Dataloader в PyTorch 0.2, например:

dataloader = torch.utils.data.DataLoader(...)
data_iter = iter(dataloader)
data = data_iter.next()

, но IndexError был повышен.

Traceback (most recent call last):
  File "main.py", line 193, in <module>
    data_target = data_target_iter.next()
  File "/usr/local/lib/python3.5/dist-packages/torch/utils/data/dataloader.py", line 201, in __next__
    return self._process_next_batch(batch)
  File "/usr/local/lib/python3.5/dist-packages/torch/utils/data/dataloader.py", line 221, in _process_next_batch
    raise batch.exc_type(batch.exc_msg)
IndexError: Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/torch/utils/data/dataloader.py", line 40, in _worker_loop
    samples = collate_fn([dataset[i] for i in batch_indices])
  File "/usr/local/lib/python3.5/dist-packages/torch/utils/data/dataloader.py", line 40, in <listcomp>
    samples = collate_fn([dataset[i] for i in batch_indices])
  File "/home/asr4/zhuminxian/adversarial/code/dataset/data_loader.py", line 33, in __getitem__
    return self.X_train[idx], self.y_train[idx]
IndexError: index 4196 is out of bounds for axis 0 with size 4135

Мне интересно, почему индекс вышел за пределы.Это ошибка Pytorch?

Я попытался запустить свой код снова, возникла та же ошибка, но на другой итерации и с другим индексом вне границ.

1 Ответ

0 голосов
/ 17 декабря 2018

Я предполагаю, что ваш data.Dataset.__len__ не был перегружен должным образом, и фактически len(dataloader.dataset) возвращает число, большее len(self.X_train).
Проверьте вашу реализацию базового набора данных в '/home/asr4/zhuminxian/adversarial/code/dataset/data_loader.py'.

...