#python #pytorch #imagenet #pytorch-dataloader
#питон #пыторч #imagenet #pytorch-загрузчик данных
Вопрос:
Я тренирую Resnet50 в imagenet, используя скрипт, предоставленный PyTorch (с небольшой тривиальной настройкой для моей цели). Тем не менее, я получаю следующую ошибку после 14 эпох обучения. Я выделил 4 графических процессора на сервере, который я использую для запуска этого. Любые указания на то, в чем заключается эта ошибка, будут оценены с благодарностью. Большое спасибо!
Epoch: [14][5000/5005] Time 1.910 (2.018) Data 0.000 (0.191) Loss 2.6954 (2.7783) Total 2.6954 (2.7783) Reg 0.0000 Prec@1 42.969 (40.556) Prec@5 64.844 (65.368)
Test: [0/196] Time 86.722 (86.722) Loss 1.9551 (1.9551) Prec@1 51.562 (51.562) Prec@5 81.641 (81.641)
Traceback (most recent call last):
File "main_group.py", line 549, in <module>
File "main_group.py", line 256, in main
File "main_group.py", line 466, in validate
if args.gpu is not None:
File "/home/users/oiler/anaconda3/envs/ml/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 801, in __next__
return self._process_data(data)
File "/home/users/oiler/anaconda3/envs/ml/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 846, in _process_data
data.reraise()
File "/home/users/oiler/anaconda3/envs/ml/lib/python3.7/site-packages/torch/_utils.py", line 385, in reraise
raise self.exc_type(msg)
OSError: Caught OSError in DataLoader worker process 11.
Original Traceback (most recent call last):
File "/home/users/oiler/anaconda3/envs/ml/lib/python3.7/site-packages/torch/utils/data/_utils/worker.py", line 178, in _worker_loop
data = fetcher.fetch(index)
File "/home/users/oiler/anaconda3/envs/ml/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/users/oiler/anaconda3/envs/ml/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/users/oiler/anaconda3/envs/ml/lib/python3.7/site-packages/torchvision/datasets/folder.py", line 138, in __getitem__
sample = self.loader(path)
File "/home/users/oiler/anaconda3/envs/ml/lib/python3.7/site-packages/torchvision/datasets/folder.py", line 174, in default_loader
return pil_loader(path)
File "/home/users/oiler/anaconda3/envs/ml/lib/python3.7/site-packages/torchvision/datasets/folder.py", line 155, in pil_loader
with open(path, 'rb') as f:
OSError: [Errno 5] Input/output error: '/data/users2/oiler/github/imagenet-data/val/n02102973/ILSVRC2012_val_00009130.JPEG'
Ответ №1:
Трудно сказать, в чем проблема, просто взглянув на опубликованную вами ошибку.
Все, что мы знаем, это то, что возникла проблема при чтении файла '/data/users2/oiler/github/imagenet-data/val/n02102973/ILSVRC2012_val_00009130.JPEG'
.
Попробуйте следующее:
- Подтвердите, что файл действительно существует.
- Подтвердите, что это действительно правильный JPEG и не поврежден (путем его просмотра).
- Подтвердите, что вы можете открыть его с помощью Python, а также загрузить вручную с помощью PIL.
- Если ничего из этого не работает, попробуйте удалить файл. Вы получаете ту же ошибку для другого файла в папке?
Комментарии:
1. Спасибо за ответ. Я вернулся и выполнил предложенные вами шаги. Файл действительно существует, его можно просмотреть, и PIL может загрузить его вручную. Более того, поскольку было выполнено 14 эпох обучения, я предполагаю, что этот файл был успешно загружен 14 раз. Считаете ли вы, что за ошибкой могут стоять какие-либо другие причины?