ソフトウェア・エンジニア(プログラマー)にオススメの深層学習MOOCのfast.aiが講義の中で使用しているライブラリfastaiが正式に1.0になったので、Google Colaboratory(以下、Colab)で使ってみました。
その際、細かいところで少しつまづいたので、それをまとめてみました。
PyTorch 1.0のインストール
fastaiはPyTorchの上に作られています。
しかし、正式リリース前のPyTorch 1.0を使っているため、Nightlyビルドを使う必要があります。
ColabではCUDA 8.0しか入っていないようなので、そちらを指定しています( の cu80
の部分)。
!pip install torch_nightly -f https://download.pytorch.org/whl/nightly/cu80/torch_nightly.html
もし古いバージョンのPyTorchをインストール済みの場合
下記コマンドで削除しておきましょう。
また、このようにライブラリを削除して新しく入れ直す場合はランタイムを再起動させるのをお忘れなく 古いライブラリを読み込んだままになってしまいます。
!pip uninstall torch
fastaiのインストール
!pip install fastai
このとき、どのバージョンがインストールされるか、ご注意を!
まだ1.0になったばかりで、まだAPIが頻繁に変わっています。サブマイナーバージョンの更新(例:1.0.2 1.0.3)でも変わったりします。
workerの数
fastaiはデフォルトでCPUの数に応じて複数プロセスで走らせるようになっているのですが、どうもColabでは安定して動かないので、その機能を切った方が良さそうです。
ImageNet形式のフォルダ構造用の関数であるimage_data_from_folder
の場合は以下のようにnum_workers
で0
を指定するとメインプロセスのみで実行されるようになります。
data = image_data_from_folder(
DATA_DIR, ds_tfms=get_transforms(), tfms=imagenet_norm, size=224,
num_workers=0 # <== こちらで0を指定する
)
learner = ConvLearner(data, arch, metrics=accuracy)
当然ながら処理に時間がかかってしまいますが、無料で使っている範囲では仕方ないかと…。