Colabの使い方

無償利用できるGoogleのGPUノートブック

ここでは、本書のサンプルコードをGoogle Colabで実行する方法を簡単に説明する。 ColabはGPUが無償で使えるNotebookサービスだ。 Colabのノートブックは通常のJupyterをベースにしているが、若干異なる点もある。 Colabのドキュメントを読んで動作を理解しておこう。

注意: Colabは無償サービスだが、いつも使えるとは限らないし、実行結果を保存するにはひと手間かかる。 Colabのウェブサイトを呼んでこのシステムの制約をよく理解しておこう。

書籍の各章のオープン

下記のリンクから書籍の各章のノートブックをColabでオープンすることができる。

1章 ディープラーニングへの旅路
2章 モデルから実運用へ
3章 データ倫理
4章 舞台裏:数字のクラス分類器
5章 画像クラス分類
6章 他のコンピュータビジョン問題
7章 SOTA モデルの訓練
8章 協調フィルタリングの詳細
9章 テーブル型データモデルの詳細
10章 自然言語処理の詳細:RNN
11章 fastai の中位API によるデータマングリング
12章 言語モデルを1 から作る
13章 畳み込みニューラルネットワーク
14章 ResNet
15章 アプリケーションアーキテクチャの詳細
16章 訓練のプロセス
17章 基礎からのニューラルネットワーク
18章 CAM を用いたCNN の解釈
19章 fastai Learner を1 から作る
20章 おわりに

別の方法もある。ColabのWelcomeページに行き、[Github]をクリックする。 「Enter a GitHub URL or search by organization or user」と聞かれたら、 「fastai/fastbook」と入力する。すると、このコースのノートブックが列挙されるので、 使いたいものを選択すればいい。

注意: 2章の節の1つではVoilaを利用している。Colabでは残念ながらVoilaは動作しない。 この節に関しては、スキップするか、Gradientなど他のプラットフォームを使ってほしい (Colab以外なら動作する)。

GPUの使用

何よりも先に、Colabに対して、GPUを使いたいと伝える必要がある。これには[Runtime]タブをクリックして、 [Change runtime type]を選択する。 するとポップアップウィンドウが開く。その中に次のようなドロップダウンメニューがあるはずだ。

このメニューからGPUを選択し、[Save]をクリックする。

ノートブックの設定

最初のセルには、fastaiやその他の必要なライブラリをセットアップするためのコードが書かれている。次のようなコードだ。

!pip install -Uqq fastbook
import fastbook
fastbook.setup_book()

このセルの左側にある三角形の実行ボタンをクリックしてこのセルを実行しよう。[Ctrl]-[Enter]でも実行できる。

最初のセルを実行すると、次のように「Warning: This notebook was not authored by Google」 という警告ウィンドウがポップアップすることがある。この場合は[RUN ANYWAY]を選択すればよい。

Google Driveの利用

ColabはノートブックをGoogle Driveにセーブする。このため、セルを実行するとGoogle Driveにログインするように求めてくる。これにはGoogleアカウントが必要になる。

ログインをしたら、次のセルを実行する。このセルでは、次のようにしてインストールしたばかりの必要なライブラリをすべてインポートする。

from fastbook import *

Google Driveへのパスは、gdriveという変数名で与えられる。この変数はPath('/content/gdrive/My Drive')を指している。 ファイルやモデルをセーブする際には、このパスの下のディレクトリを使う必要がある。

Githubからノートを開いた場合には、Google Driveにセーブする必要がある。 これには、[File]から[Save]すればよい。 次のようなポップアップが表示されるはずだ。

ここで、[SAVE A COPY IN DRIVE]をクリックする。 こうすると別のタブでGoogle Driveに置かれたノートブックが開く。 セーブしたあとも作業を続けるなら新しいタブで開かれた方を使おう。 ノートブックはデフォルトでは、Google DriveのColab Notebooksフォルダにセーブされる。

より高度で効率的なColabの使い方については、 このブログ記事を参照してほしい。