fast.ai で deep learning を勉強しよう(6)Colaboratory

モリーを多く積んだGPUボードを持っていない時にはクラウドで勉強した方が現実的です。 Google の無料 Jupyter 環境である Colaboratory で fastai を実行する方法です。

クラウド環境でfast.ai を実行する方法がここに書かれています。

Terminal | fast.ai course v3

f:id:feynman911:20190826180006j:plain

この中で 無償で一番簡単に使えそうな Google Colaboratory を使う事にします。 Colabo では、何もすることなく Jupyter が開きます。

Accessing Colab

まず 最初に Google の アカウントが必要です。 アカウントが無い時には、まず作成しましょう。

Google アカウントの作成 - Google アカウント ヘルプ

次に Google ChromeGoogle にログインした状態で Colaboratry のページを開きます。

colab.research.google.com

ダイアログが開いたら、fast.ai の notebook をGitHub からダウンロードして開くので、「GITHUB」をクリックして fastai/cource-v3 と入力して検索(右の虫眼鏡をクリック)します。  

  f:id:feynman911:20190826183024j:plain  

表示された notebook から実行したいものを選択してクリックすると notebook が開きます。

 

f:id:feynman911:20190826183212j:plain  

  ランタイムタイプを選択して、GPUを使用するように変更します。  

f:id:feynman911:20190826183619j:plain  

  f:id:feynman911:20190826183637j:plain  

 

Configuring your notebook instance

この段階では fastai のライブラリーはまだインストールされていない為、次のコマンドを notebook の先頭に追加して、実行時に fastai 環境ができるようにします。

!curl -s https://course.fast.ai/setup/colab | bash

実行すると、「GitHubから読まれたファイルだから自己責任で実行してね」と Warning が出ますが、無視して実行します。     

f:id:feynman911:20190826184219j:plain

  

Saving your notebook

GitHub から開いた Notebook は元の場所に保存ができないので、Google Drive にコピーを保存します。    

f:id:feynman911:20190826184736j:plain    

次回からは、一番初めのダイアログで「GOOGLE ドライブ」から保存したファイルを読み込みます。

Saving your data files

データファイルもGOOGLE ドライブに保存して使うようにしないと、毎回準備しないといけなくなるので、notebook から GOOGLE ドライブにアクセスするための準備をします。 次のコードを notebook の先頭に追加して、GOOGLE ドライブをマウントするようにします。

from google.colab import drive
drive.mount('/content/gdrive', force_remount=True)
root_dir = "/content/gdrive/My Drive/"
base_dir = root_dir + 'fastai-v3/'

これを実行すると、

f:id:feynman911:20190826203625j:plain

の様に表示されるので、クリックするとアカウントの選択とドライブへの接続の許可が求められ、「許可」します。 すると、authorization code が表示されるので、コピー(右側のボタンクリック)して notebook に貼り付けてENTERします。

これで base_dir を使う事で、GOOGLE ドライブ My Drive の下に fastai-v3 フォルダーを作ってアクセスする事ができるようになります。 例えば、lesson2-download.ipynb の場合、5行目に次のようにbase_dirを追加します。

path = Path(base_dir + 'data/bears')
dest = path/folder
dest.mkdir(parents=True, exist_ok=True)

lesson1-pets.ipynb の場合は untar_data でデータをダウンロードして解凍展開する時に GOOGLE ドライブを使用するには次の様にします。

path = untar_data(URLs.PETS, dest = base_dir); path

ドライブの内容を見る時には、GOOGLE にサインインした時に右上に表示される Googleアプリ からドライブをクリックして開くことができます。  

  f:id:feynman911:20190826194908j:plain  

Colabo と Windows との違い

  • Colabo は Windows ではなく Linux環境で動きます。
    ですので、Linuxのコマンドについても多少勉強が必要です。

  • Colabo は Jupyter がいきなり動くので、 Terminal を開いての作業ができません。
    notebook のセルに !付きのコマンドを打ち込んで作業します。
    例えば、ファイルの列挙は
    !ls -a
    となります。

  • Python 環境は初めからある程度入っていますが、必要なものは jupyter からインストールして利用します。
    その場合、conda ではなく pip を使用します。
    リスト表示:  !pip list
    インストール: !pip install ******

  • Colabo は何もしないと90分で接続が切れます。
    90分以内に再読み込み等を行う必要があります。Chrome拡張機能に Auto Refresh という物もあるので、そういう物を利用しても良いでしょう。

  • 12時間で接続が切れます。
    長く計算がかかる時には、途中経過を GOOGLE ドライブに保存して、再接続後読み出して継続を行う必要があります。