: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の検討だ!
つづく