AI_ML_DL’s diary

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

Kaggleに挑戦-26

Kaggleに挑戦-26

Peking University/Baidu - Autonomous Driving

Can you predict vehicle angle in different settings?

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

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

 

*昨夜、BrokenPipeErrorから解放された。num_workers = 4を「= 0」にし、さらに、CUDA Out of Memory解消のためにBatch_size = 4を「= 1」にしなければならなかったので、計算速度は、Kaggle-kernelのGPU使用時の1/4程度となった。

・Kaggle-kernelのGPU:K80は、デュアルGPUで、メモリーが24GB、私の1050Tiは、メモリーが4GBである。2080Tiならばメモリーは11GBで、他の性能も上がっているようだからK80までいかなくても、その半分くらいは期待できそうだが、35万円くらいの投資が必要となる。

・2080Tiクラスを毎日使える環境にしたいな。

・とりあえず、1050Tiでも、時間制限なく使えるようになったので、良しとしよう。

・再現性を見ようと、今の最良条件で、就寝中に、プログラムを走らせていたが、ネットワークが途中で切断されたようで、途中で停止していた。残念!

 

*まずは、ちょっと戻って、Kaggle-kernel-GPUでお手本プログラムを用いた場合の、最高スコアを、自分の環境で再現できるかどうか調べる。

・計算待ち時間がハンパないので、その間、DataCampでPytorchの基礎を勉強する。

 

*残念!RuntimeErrorだ!CUDA out of Memory!

・約6時間かけて学習した後、その学習結果の表示のところで、このエラーが発生したようだ。

・タスクマネージャーでGPU使用量をモニターしてみた。4GBのうち、3.3GBに達するとOut of Memoryになることがわかった。

・バッチサイズを1にすると、2.9GBとなり、学習までは動いていたが、学習の後、3.3GBに達し、再度、Out of Memoryで停止したようだ。

 

*バッチサイズをこれ以上小さくするわけにはいかないので、画素数を減らしてみる。まずは、サイズで半分、面積で1/4にしてみた。これで、最後の予測まで走るかどうか調べてみる。

・最後まで計算できたかと思ったら、45th/46 Cellに、num_workers = 4がチェック漏れで残っていた。num_workers = 0 とすれば、最後まで走りそうだ。

・やっと、Anaconda3 環境で、お手本プログラムを最後まで走らせることができた。

*次は、GPUがメモリーオーバーにならないように、バッチ数と画素数の適切な組合せを調べておこう。とりあえず、画素数は1/4(160x512:このサイズでどれだけのスコアになるのかな)、バッチ数は4とする。

 

*Kaggle-kernelのGPU使用時間が、実時間より長かったのは、もしかすると、num_works = 4が関係していたのかもしれないな。負荷が大きい使い方をしても、エラーが出ないように、調整してくれているのだろうか。計算環境を維持するのはたいへんだろうな。

 

*とりあえず、バッチ数4、画素数1/4、エポック数5から、条件検討を進めることにする。

 

*最後までエラーなく計算できるかどうかを、1エポックで確認していたが、今、3エポック目でGPUの使用メモリーが0.4GBも増えて3.0GBになっている。途中で止まるかもしれない。

・問題なく終了し、submitしたところ、同一条件で走らせたときのスコアの61%となった。画素数が少ない分、検出できる車の台数が減って、スコアが悪くなるということかもしれない。

・検出台数を調べて、スコアとの相関を調べてみよう。そのために、検出台数を調べるプログラムを作ってみよう。お手本プログラムの6th/46にある車の台数分布のプロットを参考にさせていただこう。pd.read_csv(PATH + 'prediction.csv')で読み込んで、4th/46 Cellのstr2coors関数で、'id'を別扱いにするif文を除けば、うまくいきそうである。

 

・明日は、Anaconda3 環境で、Focal lossとoptimizerを検討しよう!といっても、計算に長い時間がかかるので、2,3条件できればいいかな。 

 

つづく

 

f:id:AI_ML_DL:20200106070644p:plain

style 068

f:id:AI_ML_DL:20200106070730p:plain

DeepDream