Courseraの上級機械学習のプログラミング課題でGoogleColabを使う方法です。私的メモも兼ねて。
経緯
2日ほど前から上級機械学習の講座を受講し始めたのですが、 3週目のプログラミング課題にてとうとう「Courseraが提供する環境でも実行できるけど、CPUだからモデルのトレーニングに2時間かかるよ!」と言われてしまったので、早々にGPUの使えるGoogleColaboratoryに切り替えました。
Courseraのプログラミング課題提出の仕組み
Courseraの(というかこの講座の?)プログラミング課題では、チェックポイントごとに、変数の値(モデルの予測成績やパラメータの総数など)をCoursera側に送信して、値が許容範囲かどうかを確認することで得点がもらえるような仕組みになっています。大体一つの課題で6つくらいチェックポイントがあります。この時、grading_utils という独自のモジュールを使用しています。今回の主な目的はこのモジュールをColabから呼び出せるようにすることです。
ファイルのダウンロード
実は、Colabで環境を構築できるように、Coursera側で"setup_google_colab.py"というファイルを用意してくれています。まずはこのファイルをダウンロードします。
1.まず、課題のノートを開いて、左上のCOURSERAのロゴをクリックします。
2.するとファイルの一覧が表示されるので、"setup_google_colab.py"を選択して開きます。
3.左上のFileタブからDownloadを選択するとfileを自分のPCに落とすことができます。
4.同様にして、課題の.ipynbも自分のPCに落とします。
5.落としてきたファイルを自分のgoogle drive上にupします。
Google Drive のマウント
次に、Colabから自分のGoogle Drive上のファイルににアクセスできるようにDriveをマウントします。
- まず、upした課題のファイルをColabで開きます。
- 次のコマンドを実行します。
from google.colab import drive
drive.mount('/content/drive')
3. 実行すると、こんな感じでリンクが出てきます。リンクにアクセスして認証コードをゲットし、Enter your authorization code: に入力すればマウント完了です。
4.横の'三'みたいなマークをクリックすると、'drive'ディレクトリの下に自分のドライブのファイルが入っているのが確認できると思います。
Setup モジュールのimport
後は、パスを通してモジュールをimportするだけです。
例えば僕の場合、ファイルの置き場所は"My Drive/HOME/Cousera/setup_google_colab.py"なので、下のコマンドでsys.pathにパスが追加されます。
import sys
sys.path.append('/content/drive/My Drive/HOME/Cousera/')
これでimportできます。
import setup_google_colab
Setup
setup_google_colabの中には、各課題ごとの設定用の関数が定義されていて、実行すると必要な外部モジュールや、ファイルを自動的にcolabのフォルダ上にダウンロードしてくれます。
今回は課題3なので、
setup_google_colab.setup_week3()
以上です。これで、課題のノートがColab上で動くようになります。
最後に
結局、この後モデルの構造を間違えて3回くらいトレーニングし直したので、CPUでやってたらと思うと冷や汗です。ちなみにノートにはCPUだと1時間30分かかると書いていたのですが、GPUだと4分強で計算が終わりました。さすが、、、