Pytorch+Catalyst+ResNet事前学習済モデルをTPUで動かす
筆者のPytorchの学習状況
KaggleだとPytorchで書かれたコードが多くいい加減やらねば・・・と思い最近UdemyでPytorchの講座を受けていました。
Kerasから入った身としてはKerasよりコード量が多いことがすこしネックでした。
モチベーション
Pytorch用のフレームワークを使いながらTPUを使えたらいいのにと思っていたところ、出たので学習済ResNet18をロードしてCIFAR10の学習をしてみました。
I am thrilled to announce Catalyst 20.08 feature preview - TPU support without code changes!https://t.co/WaFPQ2UL7R
— Sergey Kolesnikov (@Scitator) 2020年8月1日
Powered by @catalyst_core & @PyTorch. pic.twitter.com/nBYZFwsdNE
実装
以下で公開しています。
今後に期待すること
catalystのバージョンがstabelでないため or Pytochの挙動をいまいちわかっていないためか、colabのランタイムをGPUにした場合、
device = utils.get_device() だと'cpu'しか認識されませんでした。
Pytoch+TPUの実装はKaggleで公開されていたり、こちらの記事 で紹介されていましたが、torch_xlaのコード改変が必要で少し面倒です。
かったるい事は嫌いなタチなんで、今後はこちらの開発が加速していくことに期待しています。
Pytorch+TPU+(KaggleNotebook or GCP)の構成が普段使いできる展望が見えてきたのが非常にうれしいです。