AI_ML_DL’s diary

人工知能、機械学習、ディープラーニングの日記

Kaggleに挑戦-25

:Kaggleに挑戦-25

Peking University/Baidu - Autonomous Driving

Can you predict vehicle angle in different settings?

*1月21日の締め切りに向けて、お手本のプログラムコードを理解し、動かし、性能向上を図る。

*残念だが、今のプログラムコード読解力では、本質的なところに切り込めない。マイナーな検討をしながら、論文理解とコード読解力の向上に努める。

 

*39th/46 Cell:

import gc

gc.collect()

これは、不要になったメモリー領域を解放する役割があるようだ。 

 

*お手本コードに対して、学習率を検討する:Adam( , lr=0.001), StepLR( , step_size=1, gamma=0.5)でどうなるか。

・失敗:lr=0.00000になっていた。last_epoch=-1を抜かすと、こうなるらしい。ひどいな。

・再度、失敗:last_epoch=-1を追記してもだめだった。

・想定外の使い方かもしれないな。

・ならば、ExponentialLRを使ってみよう。これなら、1エポック毎に、lrにgammaの値を掛けたlrになるのではないかな。

・なぜか、lr=0.00000、になってしまう。

・1度、お手本のオリジナルに戻ってみよう。問題は、GPU使用時間が20時間になろうとしていることだ。土日で使い切って、月-金で準備して、また土日で・・・。

・lr=0.001が戻ってきた。しかし、step_size=2とすると、またもやlr=0.00000。

・オリジナル以外は、すべて、lr=0.00000となる。わけわからん。

 

*結局、Focal lossも、lr調整もうまくいかず、今回は成績アップにつながらなかった。

GPUを効率よく使おうとして、結局、ミスを連発してしまったこと、及び、エポック数を抑えすぎて、lossのエポック依存性を十分追いかけることができず、傾向を十分には把握できなかったことが、敗因である。

・Kaggle-kernelのGPUは、すでに26時間以上使ってしまい、残りは3時間23分しかない。次の土曜日まで待つしかないのか!

 

*さて、つぎの土日のGPUで、トップ100に入れるよう、がんばろう!

・Focal lossの使い方は、ある程度わかってきた。

・lrは、今のお手本だと、Adamでは5,6エポックくらいでよさそうだが、GPU使用制限が重くのしかかって、これ以上増やすテストができない。

・自分の計算環境で発生している BrokenPipeErrorの解消に取り組もう。

 

*BrokenPipeError:

・やっと原因がわかった。

・num_workers = 4をnum_workers = 0にしたら、まず、BrokenPipeErrorが消えて、RuntimeError CUDA Out of Memoryに変わった。

・そこで、BATCH_SIZEを減らすことにした。4を3に、さらに、2にしてもダメで、結局、BATCH_SIZE=1で、ようやく動いた。

・GTX 1050Tiは、4GBで、これでギリギリのようだ。

・計算速度は、Kaggle-kernelの1/4程度まで落ちるが、24hx5/4=30hで、5日間動かし続ければ、Kaggle-kernelのGPUマシンタイム30時間相当になる。しかしながら、commitの時間が不要なので、実質、1/2の速度ともいえる。

 

*これで、GPU使用時間(1週間に30時間)の縛りから解放された。

*明日は、Focal lossの検討だ!

 

つづく 

 

f:id:AI_ML_DL:20200105111858p:plain

style 067

f:id:AI_ML_DL:20200105111944p:plain

DeepDream