在 Windows 上的 PyTorch 中使用“多处理”出现错误-“无法打开共享文件映射:<torch_13684_4004974554>,错误代码:<0>”

Posted

技术标签:

【中文标题】在 Windows 上的 PyTorch 中使用“多处理”出现错误-“无法打开共享文件映射:<torch_13684_4004974554>,错误代码:<0>”【英文标题】:Using `multiprocessing' in PyTorch on Windows got errors-`Couldn't open shared file mapping: <torch_13684_4004974554>, error code: <0>' 【发布时间】:2021-10-18 11:30:07 【问题描述】:

我目前正在使用 PyCharm 在 Windows10 上运行 PyTorch 代码。这段代码首先利用DataLoader函数(`num_workers'=4)来加载训练数据:

train_loader = DataLoader(train_dset, batch_size, shuffle=True,
                              num_workers=4, collate_fn=trim_collate)

然后,在训练过程中,它利用“for”循环来加载训练数据并训练模型:

for i, (v, norm_bb, q, target, _, _, bb, spa_adj_matrix,
                    sem_adj_matrix) in enumerate(train_loader):

错误:在“for”循环上方运行时收到以下错误消息:

    0%|          | 0/6934 [00:00<?, ?it/s]Traceback (most recent call last):
  File "E:\PyTorch_env\lib\multiprocessing\popen_spawn_win32.py", line 89, in __init__
    reduction.dump(process_obj, to_child)
  File "E:\PyTorch_env\lib\multiprocessing\reduction.py", line 60, in dump
    ForkingPickler(file, protocol).dump(obj)
  File "E:\PyTorch_env\lib\site-packages\torch\multiprocessing\reductions.py", line 286, in reduce_storage
    metadata = storage._share_filename_()
RuntimeError: Couldn't open shared file mapping: <torch_13684_4004974554>, error code: <0>
python-BaseException
Traceback (most recent call last):
  File "E:\PyTorch_env\lib\multiprocessing\spawn.py", line 115, in _main
    self = reduction.pickle.load(from_parent)
EOFError: Ran out of input
python-BaseException
  0%|          | 0/6934 [00:07<?, ?it/s]

Windows10 上的 `multiprocessing' 功能似乎有些问题。

环境设置:

    Windows10、PyCharm PyTorch v1.0.1、torchvision v0.2.2、Python 3.7.11 一个 GPU 节点

能否请您告诉我是否有任何可能的解决方案?

非常感谢!

【问题讨论】:

num_workers=0 是否会出现问题? @Berriel 感谢您的留言。我实际上已经尝试过num_workers=0,但这会带来其他错误消息:预期的长数据类型,但取而代之的是 Int。所以我目前正在尝试使用“多处理”来提高训练速度。你知道是否有任何可能的解决方案?谢谢 【参考方案1】:

如上使用num_workers=0 并且对于错误预期的长数据类型,但得到了 Int 。 申请criterion(outputs_t.float(), target_t.flatten().type(torch.LongTensor))

【讨论】:

以上是关于在 Windows 上的 PyTorch 中使用“多处理”出现错误-“无法打开共享文件映射:<torch_13684_4004974554>,错误代码:<0>”的主要内容,如果未能解决你的问题,请参考以下文章

python环境配置步骤二:Windows中创建虚拟环境安装Pytorch并在PyCharm中配置虚拟环境

无法在 pytorch 中替换 Densenet121 上的分类器

pytorch0.4发行时间

在Windows上安装pytorch

Windows系统下有英伟达显卡安装PyTorch

Windows系统下有英伟达显卡安装PyTorch