実務やKaggleで使えるPyTorchのライブラリを紹介します!
皆さんこんにちは
お元気ですか。私は元気です。
暫くKaggleしかしていなかったせいか、今年のブログ投稿頻度がひどいことになっています(がんばります。。)
それはさておき、本日はKaggleのCompetitonで便利なPyTorchのライブラリを紹介してきます。
昨年は、PyTorchの中でもAlbumentationのライブラリを紹介しました。
共通
Pytorchのモデルが容易になるライブラリ
PyTorchのモデルを書くにはモデルの宣言や変数の使い方、GPU転送などをお作法に従って記載する必要があります。
ただし、毎度毎度同じなので、それを一部ユーザで実装するエコシステムとなるライブラリが開発されています。
なぜか3つもあるので困りものです。
各ライブラリの詳細はこちらの記事を見ていただけるほうが良さそうですので、私からは名前と印象のみ紹介します。
qiita.com
Ignite
最近見ないですが、一時期利用しているユーザが多かった気がします。
github.com
Catalist
KaggleのKernelでよく見るライブラリです。
実装がシンプルでできるのが特徴でしょうか。
github.com
Lightning
最近一番盛り上がっていたライブラリですが、色々お作法通りに書くのが面倒だったのでやめた記憶があります。
github.com
Apex
NVIDIA社が公開しているPyTorchのMixed Precisionを行うためのライブラリです。
Mixed Precisionはfloat16,32での計算を自動的に変換することで、省メモリかつ計算速度が高速になり、精度も維持できるような仕組みです。
画像系の中でもSegmentationのように解像度を落としにくいような処理で応用できます。
詳しいMixed Precisionの仕組みはこちらに記載されているので一読すると良いと思います。
Introduction to Mixed Precision Training with PyTorch and TensorFlow
NLP
Transformers
BERTが発表され、その後継となるPretrainedモデルが作られてきました。
ただし、BERTは計算時間が必要で、汎用的なマシンでの計算はかなり難しいです。
原因は事前学習と呼ばれるタスクに依存しない文脈を学習させるフェーズが必要で、ここに多くの時間が割かれることになります。
それらの事前学習済のモデルが以下で配布されており、サンプルのコードもあるので、使いやすいでしょう。
Image Processing
Pretrained Pytorch
Kaggleの画像処理コンペティションでは概ね事前学習済のモデルを利用します。
大体の方はこちらから取得したモデルを使っているのではないでしょうか。
ただ、2018年からモデルの更新がないのでその点は少し心配どころですね。
github.com
EfficientNet-PyTorch
2019年に特に猛威を奮っているEfficientNetと呼ばれるニューラルネットワークのアーキテクチャがあります。
その学習済のPytorchモデルは次の箇所から取得できます。
従来までのモデルよりも計算速度が早く、精度が高いのが特徴です。ただし、私の経験ではありますが、それなりにメモリを利用するので容易ではない印象を持っています。
github.com
元論文を見たい方は次を参照ください。
arxiv.org
segmentation-pytorch
Kaggle界隈でよく利用されるSegmentationのライブラリです。
UNetやFPNなどのDecoderや多くのBackboneネットワーク(ResNet, Efficientnetなど)が備わっているため、
Segmentationのコンペティションでは非常に有用であること間違いなしです。
mmdetection
物体検出系(Object Detection&Instance Segmentation)の最新もモデルや仕組みを提供しているライブラリです。
Open Images Datasetのコンペティションでも多くの参加者が利用しています。
カスタマイズできる余地や設定ファイルのみで学習ができるところが非常におすすめのポイントの一つです。
Albumentation
言わずもがな、Kaggleの画像処理で最も利用されているライブラリです。
頻繁にアップグレードされており、新しいAugmentationが次々に取り込まれています。
最後に
Kaggleで利用できるライブラリが多くなってきたなぁといった印象です。
研究や実験だとKerasよりも圧倒的にPyTorchが扱いやすいので、ライブラリが多いのは嬉しい限りです。
お読み頂いた皆さんには有効に活用して効率化していってもらえればと思っています。
では皆さんまたお会いしましょう!