最近重新安装PyTorch,出现一个奇怪的问题:
import torch
就会报错:OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
大意是试图初始化libiomp5md.dll的时候发现它已经初始化了。还有hint说可以允许多个OpenMP runtime的副本来解决此问题。如下:
import osos.environ["KMP_DUPLICATE_LIB_OK"]="TRUE
但这不能根本解决问题。从报错信息来看,与libiomp5md.dll这个文件有关。搜一下,发现存在如下两个libiomp5md.dll文件。
<anaconda-path>/Library/bin/libiomp5md.dll
<anaconda-path>/Lib/site-packages/torch/lib/libiomp5md.dll
第一个是 anaconda / minicoda 自带的,第二个是Pytorch带的。
把上述两个位置的libiompstubs5md.dll删除(重命名)一个就可以了。本例删除(重命名为libiompstubs5md.dll-bak)的是Pytorch带的那个。

如果有虚拟环境,那么虚拟环境中的libiomp5md.dll与base环境和其他环境中的同名文件相互是隔离的,并不会互相干扰。但如果在虚拟环境中安装了Pytorch则会出现上述问题,解决方法也一样。



留下评论