在 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中配置虚拟环境