1、问题描述
使用pycharm进行网络训练时,第一轮可以正常运行,第一轮运行结束后,出行报错,无法接续第二轮训练。报错内容如下:
OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK =TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.
翻译结果如下:
OMP:提示这意味着OpenMP运行时的多个副本已链接到程序中。这很危险,因为它会降低性能或导致错误的结果。最好的做法是确保只有一个OpenMP运行时链接到流程中,例如避免在任何库中静态链接OpenMP运行库。作为一种不安全、不受支持、未记录的解决方法,您可以将环境变量KMP_DUPLICATE_LIB_OK=TRUE设置为允许程序继续执行,但这可能会导致崩溃或无声地产生不正确的结果。有关详细信息,请参阅http://www.intel.com/software/products/support/.
2、解决方法
方法一
在pycharm里调试相关程序时,在程序内添加如下语句。
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'
在Python中,可以通过os.environ来获取或者修改环境变量
os.environ['环境变量名称']='环境变量值' #其中key和value的数据类型均为string类型
方法二
找到Anaconda的安装路径,在Library\bin的路径下找到libiomp5md.dll文件将其删除,删除后可持续训练。以我的安装路径为例,D:\Program\anaconda\Library\bin。
实测后有效,如害怕破坏初始环境,可在删除前备份文件和文件的绝对路径,无法解决问题后恢复原文件。