OMP: Error #15:

相変わらずすぐに使える! 業務で実践できる! Pythonによる AI・機械学習・深層学習アプリのつくり方の続き。ようやくディープラーニングの章を進めているけれど、「MLPでMNISTの分類問題に挑戦しよう」というところのグラフを描画するところでつまずく。

Jupiter Notebookでこのプログラムを動かすと、最後のEpochまで動いたところで、

The kernel appears to have died. It will restart automatically.

という表示が出て止まる。

なんでかなと同じコードをターミナルから動かすと、やはり最後グラフの描画の前に

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 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/.
zsh: abort      python <ファイル名>.py

という表示が出て止まってしまう。どうしたものか。

とりあえず、日本語で検索して出てくる情報は以下のような感じ。

Anacondaを使用してMacでDeepLabのデモを実行

とりあえず、1つ目、2つ目のリンクにあるように、パッケージをインストールしたりアンインストールしてみてもうまく行かない。

結局最終的な解決策は3つ目のリンクにあるように

import os
os.environ['KMP_DUPLICATE_LIB_OK']='TRUE'

という記述を追記して、解決。

ただし、これは根本的な解決ではないそうで、また出てきたら調べないと。