问题描述
我正在尝试运行一个测试程序来检查我的 Anaconda 环境是否配置正确.但是,当我运行我的测试程序时,我会在程序设置图形时收到此错误消息(准确地说是 on_train_end() 回调):
I'm trying to run a test program to check if my Anaconda environment is configured correctly. However, when I run my test program I get this error message when the program is setting up graph (on_train_end() callback to be precise):
OMP:错误 #15:正在初始化 libiomp5.dylib,但找到了 libiomp5.dylib已经初始化.OMP:提示 这意味着 OpenMP 运行时的多个副本已经存在,因为它会降低性能或导致不正确的结果.最好的办法是确保只有一个 OpenMP 运行时链接到进程中,例如通过避免在任何库中静态链接 OpenMP 运行时.作为一种不安全、不受支持、未记录的解决方法,您可以设置环境变量 KMP_DUPLICATE_LIB_OK=TRUE 以允许程序继续执行,但这可能会导致崩溃或默默地产生不正确的结果.如需更多信息,请参阅 http://www.intel.com/software/products/support/.
OMP: Error #15: Initializing libiomp5.dylib, but found libiomp5.dylib already initialized. OMP: Hint This means that multiple copies of the OpenMP runtime have been 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/.
我正在安装 macOS Mojave 10.14.1 的 MacBook Pro 15" 2015 上运行测试程序.我目前安装的 Anaconda 发行版是 https://repo.anaconda.com/archive/Anaconda2-5.3.0-MacOSX-x86_64.sh.
I'm running the test program on my MacBook Pro 15" 2015 where it is installed macOS Mojave 10.14.1. The Anaconda distribution that I have currently installed is https://repo.anaconda.com/archive/Anaconda2-5.3.0-MacOSX-x86_64.sh.
这是测试程序:
#!/usr/bin/env python import numpy as np import tensorflow as tf import matplotlib.pyplot as plt from tensorflow import keras Xs = np.array([ [0, 0], [0, 1], [1, 1], [1, 0] ]) Ys = np.array([ [0], [1], [0], [1] ]) class MyCallback(keras.callbacks.Callback): def __init__(self): super(MyCallback, self).__init__() self.stats = [] def on_epoch_end(self, epoch, logs=None): self.stats.append({ 'loss': logs['loss'], 'acc': logs['acc'], 'epoch': epoch }) def on_train_end(self, logs=None): loss_x = [] loss_y = [] acc_x = [] acc_y = [] for e in self.stats: loss_x.append(e['epoch']) loss_y.append(e['loss']) acc_x.append(e['epoch']) acc_y.append(e['acc']) plt.plot(loss_x, loss_y, 'r', label='Loss') plt.plot(acc_x, acc_y, 'b', label='Accuracy') plt.xlabel('Epochs') plt.ylabel('Loss / Accuracy') plt.legend(loc='upper left') plt.show() with tf.Session() as session: model = keras.models.Sequential() model.add(keras.layers.Dense(10, activation=keras.activations.elu, input_dim=2)) model.add(keras.layers.Dense(1, activation=keras.activations.sigmoid)) model.compile(optimizer=keras.optimizers.Adam(lr=0.05), loss=keras.losses.mean_squared_error, metrics=['accuracy']) model.fit(x=Xs, y=Ys, batch_size=4, epochs=50, callbacks=[MyCallback()]) print("Training complete") loss, acc = model.evaluate(Xs, Ys) print(f"loss: {loss} - acc: {acc}") predictions = model.predict(Xs) print("predictions") print(predictions)
我已经尝试参考 答案initial">this 相关问题.因此,在 import 部分之后添加以下代码行:
I already tried to fix the issue referencing to the answer of this related question. Thus, adding the following lines of code after the import section:
import os os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'
我得到的是另一个错误消息,这是完整的堆栈跟踪:
What I get is another error message, this is the full stack trace:
2018-12-06 10:18:34.262 python[19319:371282] -[NSApplication _setup:]: unrecognized selector sent to instance 0x7ff2b07a3d00 2018-12-06 10:18:34.266 python[19319:371282] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSApplication _setup:]: unrecognized selector sent to instance 0x7ff2b07a3d00' *** First throw call stack: ( 0 CoreFoundation 0x00007fff2ccf0e65 __exceptionPreprocess + 256 1 libobjc.A.dylib 0x00007fff58d47720 objc_exception_throw + 48 2 CoreFoundation 0x00007fff2cd6e22d -[NSObject(NSObject) __retain_OA] + 0 3 CoreFoundation 0x00007fff2cc92820 ___forwarding___ + 1486 4 CoreFoundation 0x00007fff2cc921c8 _CF_forwarding_prep_0 + 120 5 libt**.6.dylib 0x0000000b36aeb31d TkpInit + 413 6 libt**.6.dylib 0x0000000b36a4317e Initialize + 2622 7 _tkinter.cpython-36m-darwin.so 0x0000000b3686ba16 _tkinter_create + 1174 8 python 0x000000010571c088 _PyCFunction_FastCallDict + 200 9 python 0x00000001057f2f4f call_function + 143 10 python 0x00000001057f0abf _PyEval_EvalFrameDefault + 46847 11 python 0x00000001057e4209 _PyEval_EvalCodeWithName + 425 12 python 0x00000001057f3b1c _PyFunction_FastCallDict + 364 13 python 0x000000010569a8b0 _PyObject_FastCallDict + 320 14 python 0x00000001056c1fe8 method_call + 136 15 python 0x00000001056a1efe PyObject_Call + 62 16 python 0x0000000105743385 slot_tp_init + 117 17 python 0x00000001057478c1 type_call + 241 18 python 0x000000010569a821 _PyObject_FastCallDict + 177 19 python 0x00000001056a2a67 _PyObject_FastCallKeywords + 327 20 python 0x00000001057f3048 call_function + 392 21 python 0x00000001057f0b6f _PyEval_EvalFrameDefault + 47023 22 python 0x00000001057f330c fast_function + 188 23 python 0x00000001057f2fac call_function + 236 24 python 0x00000001057f0abf _PyEval_EvalFrameDefault + 46847 25 python 0x00000001057e4209 _PyEval_EvalCodeWithName + 425 26 python 0x00000001057f3b1c _PyFunction_FastCallDict + 364 27 python 0x000000010569a8b0 _PyObject_FastCallDict + 320 28 python 0x00000001056c1fe8 method_call + 136 29 python 0x00000001056a1efe PyObject_Call + 62 30 python 0x00000001057f0cc0 _PyEval_EvalFrameDefault + 47360 31 python 0x00000001057e4209 _PyEval_EvalCodeWithName + 425 32 python 0x00000001057f33ba fast_function + 362 33 python 0x00000001057f2fac call_function + 236 34 python 0x00000001057f0abf _PyEval_EvalFrameDefault + 46847 35 python 0x00000001057f330c fast_function + 188 36 python 0x00000001057f2fac call_function + 236 37 python 0x00000001057f0abf _PyEval_EvalFrameDefault + 46847 38 python 0x00000001057e4209 _PyEval_EvalCodeWithName + 425 39 python 0x00000001057f33ba fast_function + 362 40 python 0x00000001057f2fac call_function + 236 41 python 0x00000001057f0abf _PyEval_EvalFrameDefault + 46847 42 python 0x00000001057e4209 _PyEval_EvalCodeWithName + 425 43 python 0x00000001057f33ba fast_function + 362 44 python 0x00000001057f2fac call_function + 236 45 python 0x00000001057f0b6f _PyEval_EvalFrameDefault + 47023 46 python 0x00000001057e4209 _PyEval_EvalCodeWithName + 425 47 python 0x00000001057f33ba fast_function + 362 48 python 0x00000001057f2fac call_function + 236 49 python 0x00000001057f0abf _PyEval_EvalFrameDefault + 46847 50 python 0x00000001057e4209 _PyEval_EvalCodeWithName + 425 51 python 0x00000001057f33ba fast_function + 362 52 python 0x00000001057f2fac call_function + 236 53 python 0x00000001057f0abf _PyEval_EvalFrameDefault + 46847 54 python 0x00000001057e4209 _PyEval_EvalCodeWithName + 425 55 python 0x00000001057f33ba fast_function + 362 56 python 0x00000001057f2fac call_function + 236 57 python 0x00000001057f0b6f _PyEval_EvalFrameDefault + 47023 58 python 0x00000001057e4209 _PyEval_EvalCodeWithName + 425 59 python 0x00000001057f33ba fast_function + 362 60 python 0x00000001057f2fac call_function + 236 61 python 0x00000001057f0b6f _PyEval_EvalFrameDefault + 47023 62 python 0x00000001057e4209 _PyEval_EvalCodeWithName + 425 63 python 0x000000010583cd4c PyRun_FileExFlags + 252 64 python 0x000000010583c224 PyRun_SimpleFileExFlags + 372 65 python 0x0000000105862d66 Py_Main + 3734 66 python 0x0000000105692929 main + 313 67 libdyld.dylib 0x00007fff59e1608d start + 1 68 ??? 0x0000000000000002 0x0 + 2 ) libc++abi.dylib: terminating with uncaught exception of type NSException
这里是环境中安装的相关依赖的列表(不相关的依赖为了简洁省略):
Here is a list of the related dependencies installed in the environment (not related dependencies are omitted for brevity):
Name | Version Build --------------------|----------------|---------------------- _tflow_select | 2.3.0 | mkl blas | 1.0 | mkl intel-openmp | 2019.1 | 144 matplotlib | 3.0.1 | py36h54f8f79_0 mkl | 2018.0.3 | 1 mkl_fft | 1.0.6 | py36hb8a8100_0 mkl_random | 1.0.1 | py36h5d10147_1 numpy | 1.15.4 | py36h6a91979_0 numpy-base | 1.15.4 | py36h8a80b8c_0 tensorboard | 1.12.0 | py36hdc36e2c_0 tensorflow | 1.12.0 | mkl_py36h2b2bbaf_0 tensorflow-base | 1.12.0 | mkl_py36h70e0e9a_0
推荐答案
在大多数情况下,这样可以解决问题:
In most cases, this solves the problem:
conda install nomkl