Kaggleに挑戦-29
Peking University/Baidu - Autonomous Driving
Can you predict vehicle angle in different settings?
*1月21日の締め切りに向けて、お手本のプログラムコードを理解し、動かし、性能向上を図る。
*今日は、午後から、Pytorchの勉強!
*基礎を2時間:
・pytorch/org/tutorialsの最初の60分コースをやってみた。
・きっちりフォローできたとはいえないが、概略をつかむにも、120分くらいかかった。
・このコースで使われているプログラムをWindowsマシンで走らせると、BrokenPipeErrorとなるから、num_workers = 2を=0にしなさいと書いてあるのを見て、ふむふむ、と納得した。まさに、これと同じエラーで、ずいぶん時間をとられた。
・まだほんの入り口だが、DNNのモデルの書き方は、Kerasの方が簡潔でわかりやすいと感じた。ただし、入門用の単純なモデルで比較しても、たいした意味はないかもしれない。
*物体検出を3時間:同じコースの、TORCHVISION OBJECT DETECTION FINETUNING TUTORIALをやってみる。
・よくわからんが、ファインチューニングということだから、学習済みのモデルを持ってきて、大半のパラメータを固定して、出口に近い層のみ変更しているのだろう。
・FasterRCNN、FastRCNNPredictor、MaskRCNNPredictorなどを読み込んで使っているのを見ていると、これらは、すでに、部品の1つになっている。中身を理解してから使おう、中身を理解するまでは使えない、などというふうに考えることはないのかもしれない。いかに上手に使うかを学べばいいんだ、というふうに思えばいいのかもしれない。
・余談になるが、斎藤康毅氏のゼロから作るDeep Learningは、ニューロンの個数を数えて、途中のマトリックスの形状を考えながら式を作っていたのが、F. Chollet氏のDeep Learning With Pythonになると、Layerを入り口から出口まで順に並べていくだけで簡単にモデルが出来上がっていた。もちろん、すでに、学習済みのネットワークを部品として使ってはいたが、Pytorchでは、さらに、進化しているように感じた。ただし、コーディングするときの変数の文字数が非常に多いのは気になる。しかし、文字数の多い方が、変数の内容がよくわかって、かえって、覚えやすいということもある。
*Pytorchのトレーニングコースを一通りやってみよう!(早く習得して、このコンペのスコアアップにつなげられるようになればよいのだが!)
・とはいえ、今いちばんひっかかっているのは、テンソルの変換のところであって、テンソルの演算、要素の抽出、並び替え、置換、などの操作に習熟しよう。Pytorchの前に、numpyだ。
・逆順[ : , : , : : -1]、転置 T、逆行列 np.linalg.inv、どういう機能があって、どういう場合に、どのように使われるのか。
・自分の脳のトレーニングによって、natural intelligenceを鍛えなければならない。
つづく (明日は、終日出張だ!出張中もPytorchだ!numpyだ!)