最近、AIや機械学習がブームになっていますよね。
私も流行に乗り遅れまいと、以下のサイトのソースコードでディープラーニングを試してみました。環境はPythonのAnaconda+Kerasです。
KerasでIMDB映画レビューDatasetのネガポジ分類 – Qiita
ところが、いくつかエラーが発生してしまいました。
この記事では、私が遭遇したエラー内容と対処法をご紹介します。
エラー内容
学習完了後にhistory object
の中身を確認しようとしたところ、以下のエラーが発生しました。
OMP: Error #15: Initializing libiomp5.dylib, but found libiomp5.dylib already initialized.
環境
- macOS 10.14.6
- pyenvにAnaconda3をインストール
- pipでTensorflowとKerasをインストール
対策
pipでのアンインストール
以下のサイトによると、Anaconda環境下ではpipでパッケージをインストールするのは危険らしいです。
condaとpip:混ぜるな危険 – onoz000’s blog
そのため、とりあえずpip uninstall
コマンドでTensorflowとKerasをアンインストールしました。
mklのアンインストールとnomklのインストール
上記の操作後、conda install
でTensorflowとKerasをインストールし直しましたがエラーは治らず。。
そこで、以下のサイトを参考にconda uninstall
でmklをアンインストール後、nomklをインストールしました。
Anacondaを使用してMacでDeepLabのデモを実行|よごくすギャラクシー|note
今回のエラーに関係するのかはわかりませんが、mklにはバグが有り、sklearnではメモリーリークを引き起こすとのこと。
sklearn.manifold.tsneのメモリリークを回避するために(Anacondaのみ) – 強弱と高低
mklをアンインストールしたことでTensorflow、Keras、Matplotlib、pandasもアンインストールされているので、これらのパッケージをconda installで
再インストール。
numpyにモンキーパッチをあてる
今度はkeras.datasets.imdb.load_data()
の実行時に以下のエラーが発生しました。
ValueError: Object arrays cannot be loaded when allow_pickle=False.
keras.datasets.reuters
を実行したときも同様のエラーが発生しました。
これはnumpyの仕様変更に起因する問題らしく、以下のサイトにあるモンキーパッチ1を使うことで解決しました。
Python: Keras で imdb データセットを読もうとするとエラーになる問題と回避策について – CUBE SUGAR CONTAINER
結果と謝辞
以上の変更で目的のコードを無事に実行することができました。
今回のエラーは思いのほか複雑なものだったので、私の独力ではとても解決できなかったと思います。
有益な情報を発信して下さる方々にこの場を借りてお礼を申し上げます。
コメント