テストプログラムを実行して、Anaconda環境が正しく構成されているかどうかを確認しようとしています。ただし、テストプログラムを実行すると、プログラムがグラフを設定しているときに次のエラーメッセージが表示されます(正確にはon_train_end()
コールバック)。
OMP:エラー#15:libiomp5.dylibを初期化していますが、libiomp5.dylibがすでに初期化されていることがわかりました。 OMP:ヒントこれは、パフォーマンスを低下させたり、誤った結果を引き起こしたりする可能性があるため、OpenMPランタイムの複数のコピーが存在することを意味します。最善の方法は、単一のOpenMPランタイムのみがプロセスにリンクされていることを確認することです。ライブラリ内のOpenMPランタイムの静的リンクを回避する。安全でない、サポートされていない、文書化されていない回避策として、環境変数KMP_DUPLICATE_LIB_OK = TRUEを設定して、プログラムの実行を継続できるようにすることができますが、クラッシュが発生したり、サイレントに誤った結果が生成されたりする可能性があります。詳細については、 http://www.intel.com/software/products/support/ を参照してください。
MacOS Mojave10.14.1がインストールされているMacBookPro 15 "2015でテストプログラムを実行しています。現在インストールしているAnacondaディストリビューションは 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)
this 関連の質問の answer を参照して問題を修正しようとしました。したがって、import
セクションの後に次のコード行を追加します。
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'
私が得るのは別のエラーメッセージです、これは完全なスタックトレースです:
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 libtk8.6.dylib 0x0000000b36aeb31d TkpInit + 413
6 libtk8.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
これは、環境にインストールされている関連する依存関係のリストです(簡潔にするために関連する依存関係は省略されていません)。
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
ほとんどの場合、これで問題が解決します。
conda install nomkl
私は同様の経験をしました、そして他の場所に投稿された解決策は私のために物事を修正していませんでした。最終的に、matplotlibのバージョンをダウングレードすることで、ブロックが解除されました。つまり、conda install matplotlib=2.2.3