こんにちは、ATです。
前回はLaravelの地味なTipsを書きましたが今回は最近よく触っているKerasについて書いていきます。
あくまで主観ですが深層学習界隈ではKeras使用が普通、標準になってると思います。
なので大きな流れに乗ってKerasでいくことにしましょうか。
と言う訳で今回はKerasインストールについてです。
しかしネタとしてはなん番煎じなのかわからないほど情報があふれています。
が、それなりに落とし穴にはまったりしたので情報量的には0.01くらいは増えているのではないかと、、、
いろいろなやり方があると思いますが、以前Anacondaを触ったことがあったのでこちらを使ってKeras環境を作成することにしました。
調べた範囲では、とりあえずanacondaつかっとけよ。
といった意見が多数なのでまぁ大丈夫だろうと軽い気持ちでanaconndaにしましたが、やはりそれなりに苦労するハメに、、、
Anacondaのインストール
コマンドラインでおこないます。
まずはディストリビューションの確認。
pyenv install --list | grep anaconda
表示される名前をインストール時に指定する。
pyenv install anaconda3バージョン名
でanaconndaがインストールされる。
入れるバージョンは注意(kerasがpython3.6までとかあるんで。使いたいディヅトリビューションのpythonバージョンは要確認)
pyenv versions
インストールした名前が表示されていれば無事インストール完了です。
仮想環境の構築
むやみに環境をを変えると他のアプリの動作に影響を与えかねない為、
仮想環境を作成してその下で作業するのがマナー。
仮想環境の作成にはcondaコマンドを使用します。
conda create --name [仮想環境名] python=[pythonのバージョン] anaconda
# 環境一覧
conda info -e
なにもなければ一覧に作成時に指定した環境名が表示されます。
# 有効化
# (注:昔は"source activate"でしたが、4.4から"conda activate"に変わったようです)
# 今回はsourceで有効化しています
source activate 仮想環境名
# 無効化
conda deactivate
で仮想環境を有効/無効を設定します。
python -V
でバージョンを確認し無事変わっていればOKです。
次から、tensorflow、kerasをインストールしていきます。
以下の方法でインストールは問題なくおわります。
終わりますが実行時に問題がでてきます。
それについては後ほど。
Tensorflowのインストール
インストール
pip install tensorflow
python上で、
import tensorflow as tf
としてエラーが出なければ、一旦インストールは成功。
Kerasのインストール
インストール
pip install keras
動作確認して問題なければ終了です。
動作確認コード(公式にあるコードです)
# 動作確認
import tensorflow as tf
import keras
from keras.models import Sequential
m = Sequential()
from keras.layers import Dense, Activation
import keras.optimizers
m.add(Dense(units=64, input_dim=100))
m.add(Activation('relu'))
m.add(Dense(units=10))
m.add(Activation('softmax'))
m.compile(loss=keras.losses.categorical_crossentropy, optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))
ここで動作確認で結構エラーが出たりします。
基本的には、インストールしているライブラリの不整合が原因なので、
問題のライブラリをupdateすればほとんど解消します。
落とし穴、、、
しばらく開発を行っていましたがずっと気になっていたことがありました。
少し調べてみるとやはり問題があることがわかってしまいました。
結論としては、conndaとpipの併用は避けたほうがよいようです。
そこでcondaだけでライブラリの管理を行うことにしました。
別途、新しく仮想環境を作成しそこで下記コマンドにてtensorflow、kerasのインストールを行います。
conda install tensorflow
conda install keras
こちらでインストール自体はエラーなく終了しました。
これで大丈夫かと思い自作コードを実行させたところ、実行エラーが発生するではないか!?
先にも書いてますが、基本的にはライブラリのバージョン不整合がおこっており該当ライブラリをupdateすることで解決します。
が、今回はupdateすると、違うライブラリで不整合が発生、
そちらをupdateするとまた別のが、、、
といった形でバージョン不整合地獄に陥りました。
しまいにはjupyterまで起動しなくなりもはや何が何やらといった状態に。
結局、なんでもかんでもupdateで最新にしていたのがはまった原因でした。
ものによっては適切なバージョン指定が必要そうです。
ちなみに今回はdaskでエラーが出ていました。
こちら1.1.1を指定してバージョンアップすることでエラーが無事解決。
といったところでお時間になりました。
では良きKerasライフを。
株式会社grasys(グラシス)は、技術が好きで一緒に夢中になれる仲間を募集しています。
grasysは、大規模・高負荷・高集積・高密度なシステムを多く扱っているITインフラの会社です。Google Cloud (GCP)、Amazon Web Services (AWS)、Microsoft Azureの最先端技術を活用してクラウドインフラやデータ分析基盤など、ITシステムの重要な基盤を設計・構築し、改善を続けながら運用しています。
お客様の課題解決をしながら技術を広げたい方、攻めのインフラ技術を習得したい方、とことん技術を追求したい方にとって素晴らしい環境が、grasysにはあります。
お気軽にご連絡ください。