keras-PlaidML インストールチャレンジ
いい話を聞いた。
macOSのRでもKerasのbackendにPlaidML指定したらちゃんとAMDのGPUで動いたのでようやくdeepやる気が出てきた。https://t.co/TUAJC92ehW
— Hoxo_Mass_Spectrum (@siero5335) 2018年6月24日
ということでリンク先のこれを試してみることにする。
http://rpubs.com/siero5335/399690
しかしうまくいかない。
大体において人生はうまくいかない。
小学校の時だって周囲が紫の大輪の朝顔を咲かせる中、私だけ白くて小さな朝顔だった。
プロポーズも大体失敗する。
まずinstall_keras()するとこういうメッセージが出た。
> install_keras() Using existing virtualenv at ~/.virtualenvs/r-tensorflow Upgrading pip ... Collecting pip Could not fetch URL https://pypi.python.org/simple/pip/ : There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
このSSLエラーはPythonを古いバージョン(私の場合は2.7.10)で放置もしくはOpenSSLを古いバージョンで放置していると起きるらしい。
https://qiita.com/n-funaki/items/00649013f61008da46cd
以下手順で対応した。
1.新しいバージョンのPython(2.7.15)をpyenvで追加し切り替える(以下参考)
https://qiita.com/twipg/items/75fc9428e4c33ed429c0
2.~/.virtualenvs/r-tensorflowを削除
3.再度install_keras()
で、今度はこういうエラーが出た。
> use_backend(backend = "plaidml") initialize_python(required_module, use_environment) でエラー: Python shared library '/Users/dichika/.pyenv/versions/2.7.15/lib/libpython2.7.dylib' not found, Python bindings not loaded.
確かにlibpythonがNOT FOUNDとなっている。
> reticulate::py_discover_config("keras") libpython: /Users/dichika/.pyenv/versions/2.7.15/lib/libpython2.7.dylib[NOT FOUND]
確かに無い。pyenvが原因か!?ということで--enable-sharedをつけて再度2.7.15をインストール。辛い。以下参考。
https://qiita.com/some-nyan/items/56f2e23cc8c0134e33a7
https://qiita.com/kjunichi/items/7453814cb902158f9836
これでなんとか冒頭のコードを動かすことができた。
疲れた。
あまり関係ないけどvirtualenvの指定はreticulateパッケージでできることを学んだ。
reticulate::use_virtualenv("~/plaidml-venv")