自分のための備忘録的なブログです。

Ubuntu14.04LTS を使って、ディープラーニングの勉強をしています。
記載されているコードは、他の OS には互換性がない可能性があります。


DNN:
マシン性能別 学習速度の比較, TFチュートリアルをmodifyする

python3:
オブジェクト指向プログラミングとは, モジュールとインポート、パスを通す, システムコマンド(os), ファイル・フォルダ名取得, 画像の前処理,

Ubuntu14 の初期設定:
Ubuntu14初期設定, 初期設定-2, cudaなども, 初期設定-3

Keras を使って驚いたこと:インストールの不具合に気付く。

と言うわけで、Keras を始めて約 1日が過ぎました。

 

Keras は簡単で良いですね。

 

できたこと

 

1.VGG 風の簡単なモデルを試す。

2.Keras に実装済みモデルを使う:Xception

3.Imagenet 学習済みモデルの転移学習を試す。

 

結果:これまで 精度 0.90 までしか出なかったのが、最高 0.97 を叩き出す。

 

これまで tf で、何ヶ月も苦しんでいた

1.batch normalization とか

2.既存の高精度なモデルの利用 とか

3.Imagenet 学習済みモデルの転移学習 とか

 

が解決してしまいました。

(tf で実装できている、学習過程の保存とか、tensorboard の利用は、まだ Keras ではできないのですが) 

 

その学習過程は壮絶で、これまで 65度程度だったオリファンの GTX1070 が、80度越えまで頑張ってくれちゃいました。

これを何日も回すのは不安・・・

 

もちろん、ここ数ヶ月の、tf での苦しみから学んだこともあります・・・

 

エラーを見て、どこの問題か推測する とか

エラーが出ても慌てず、手順を経て解消する とか

 

の経験が積めたし。

 

おかげで、Keras を短期間で使えるようになったと思いたい。。。

無駄じゃなかったと思いたい。。。

 

さておき、とんでもないことに気付きました。

 

私はディープラーニング用に2台のパソコンを使っていますが、

メインマシンでトラブル発生です。

 

気付いたのは些細なこと。

今回なぜか、サブマシンで Keras を使い始めました。

 

とりあえずの実装ができたので、メインマシンへコピー。2台でハイパーパラメータの調整を始めたところ、どうもメインマシンの精度が安定しないのです。

サブマシンだと val_accuracy は 0.95-0.99 に張り付いてるのが、メインだと 0.00 - 0.99 までめまぐるしく動く感じ。Seed 取ってないせいかもしれませんが、それにしたって上下動が激しすぎます。

 

で、なんだか変だと。

 

よくよく考えると、

 

「Python3.6 で、出るはずの pandas エラーが返らない!」

 

ことに気付きました。

Keras は python 3.5 までの対応でして、サブマシンの方で 3.6 で動かすと「pandasがなんちゃら」とか エラーを出して止まるのですが。

メインマシンだと、3.6 でも曲がりなりに動いてくれますが、 val_acc が 0 ~ 0.99 までめまぐるしく動きます。そうすると test accuracy も当然悪いと。

 

学習速度は 1080ti のおかげで 1.5 倍くらい速いのですが、どこかがおかしく、使い物になりません。 

 

pandas 関連の問題だとすれば Anaconda のインストールの問題なんでしょうけど。

前 Anaconda を入れ直した際、なんか設定ファイルがうまく消せなかった経験があり(再インストールで環境引き継がれてしまった)。

また、どこに問題があるか切り分けられず、そのうちにさっくり、 Ubuntu インストールからやり直そうと思っています。

 

 これで一日潰れるし、再インストールして再発した否にはどうしようって感じですけど。。。