【问题标题】:DataLoader worker exited unexpectedly (pid(s) 48817, 48818)DataLoader 工作程序意外退出(pid 48817、48818)
【发布时间】:2021-10-26 02:59:04
【问题描述】:

在运行我的代码时,我收到了这个错误消息 “RuntimeError: DataLoader worker (pid(s) 48817, 48818) 意外退出” 我完全不确定从哪里开始解决这个问题。任何指导将不胜感激。代码和回溯贴在下面

batch_size = 128
image_size = (64,64)
stats = (0.5, 0.5, 0.5), (0.5, 0.5, 0.5)

transform_ds = transforms.Compose([transforms.Resize(image_size),
#                                    transforms.RandomCrop(32, padding=2),
#                                    transforms.RandomHorizontalFlip(),
                                   transforms.ToTensor(),
                                   transforms.Normalize(*stats)
                                   ])

train_ds = facesDataset(csv_file = 'imagesdataset.csv', root_dir = 'images', 
                      transform = transform_ds)

train_dl = DataLoader(train_ds, batch_size, shuffle=True, num_workers=3, pin_memory=True)
print(len(train_ds))

def denorm(img_tensors):
    return img_tensors * stats[1][0] + stats[0][0]

def show_images(img, nmax=64):
    fig, ax = plt.subplots(figsize=(8, 8))
    ax.set_xticks([]); ax.set_yticks([])
    ax.imshow(make_grid(denorm(img.detach()[:nmax]), nrow=8).permute(1, 2, 0))

def show_batch(dl, nmax=64):
    for img, _ in dl:
        show_images(img, nmax)
        break

show_batch(train_dl)

追溯

Traceback (most recent call last):
  File "/Users/___/Desktop/stylegan/stylegan.py", line 52, in <module>
    show_batch(train_dl)
  File "/Users/___/Desktop/stylegan/stylegan.py", line 48, in show_batch
    for img, _ in dl:
  File "/Users/___/opt/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 521, in __next__
    data = self._next_data()
  File "/Users/___/opt/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1186, in _next_data
    idx, data = self._get_data()
  File "/Users/___/opt/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1152, in _get_data
    success, data = self._try_get_data()
  File "/Users/___/opt/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1003, in _try_get_data
    raise RuntimeError('DataLoader worker (pid(s) {}) exited unexpectedly'.format(pids_str)) from e
RuntimeError: DataLoader worker (pid(s) 48817, 48818) exited unexpectedly

【问题讨论】:

  • NEMO Speaker Diarization 面临同样的问题。数据加载器(进程 ID)意外退出。我会尝试下面给出的解决方案。让我们看看会发生什么。

标签: python pytorch torchvision pytorch-dataloader


【解决方案1】:

其中一个原因可能是使用 多处理 加载数据。据我所知,在 Windows 中,如果您不将num_workers 设置为0,那么就会出现错误。所以我建议你尝试不使用num_workers(因为默认情况下,它是0)或者只是设置它num_workers=0。

train_dl = DataLoader(train_ds, batch_size, shuffle=True, num_workers=0, pin_memory=True)

【讨论】:

    猜你喜欢
    • 2020-05-22
    • 2022-11-10
    • 2021-07-27
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 2017-12-09
    • 2012-02-23
    相关资源
    最近更新 更多