02/13(水)に参加した「みんなのPython勉強会#42」で、Jupyter Notebookを使って実際にコードを動かしていくセッションがありました。
セッション中のツイートでこんな声があったので、「それ、PC無くてもスマフォでできるよ!」と思って書き始めたのがこのエントリです。
辻さんの発表内容は手を動かして確認したいです。
— kazami@沖縄ドロしおりん→サクライブ(行きたい)→IPA(AP)→ロジャポ中野(仮) (@_kazami_y) February 13, 2019
仕事の日は私物PC持ち歩けないので、今度お休みの日に打ち込みながら確認します!#stapy
もっとも、ガッツリ仕事で使うのには向かないと思いますので、その点はご注意を。
目次
Google Colaboratoryとは
Googleの提供するPython実行環境です。
Googleアカウントを持っていれば、ブラウザだけで使えます。(実行環境はGoogle Cloudに作られる)
しかも、無料です。
他にも、Google ドライブをマウントできたり、GPU(!?)が使えたりします。
- PC手元にないんだけどスマフォからPythonコード動かして試したい
- Pythonを勉強するために手軽に始めたいんだけど環境を作るのが面倒
- ハンズオンやりたいんだけど環境がバラバラだと意図しないトラブルがあるので面倒
等の場合に便利だと思います。
Google Colaboratoryは Jupyter Notebookからフォーク、つまり派生したものなので、Jupyter Notebookのファイルが読み込めます。
既存のファイルがあったり、公開されているものをトレースしたい場合にも便利に使えると思います。
公開されているノートブックを読み込む
公開されている .ipynb 形式のファイルが有れば、それをGoogleドライブにアップロードすることで Google Colaboratory に読み込むことができます。
.ipynb 形式のファイルを用意
今回のきっかけになったセッションでは、.ipynb 形式のファイルが公開されていますので、それをまずダウンロードします。
http://www.tsjshg.info/Stapy20190213_Tsuji.ipynb
Google Colaboratory を開く
次に、Google Colaboratory を開きます。
ファイルのアップロード
こんな感じの画面が表示されると思いますので、画面上の方にあるタブ部分で ">" (赤枠部分)をタッチして右側に隠れているタブを表示します。
右端まで行くと「アップロードタブ」(赤枠)が表示されるので、タッチします。
ファイルのアップロード画面が表示されますので、先程ダウンロードした .ipynb ファイルを指定してアップロードを行います。
なお、アップロードされたファイルはGoogleドライブに保存されますので、Googleドライブの共有機能を使って他のユーザーとファイルを共有することもできます。
Python実行環境起動待ち
ファイルが読み込まれると、バックグラウンドでPython実行用の仮想マシンがGoogle Cloud側に起動します。
起動するまでは画面上部に「接続中」(赤枠)と表示されます。
仮想マシンが起動して、Pythonが実行できるようになると、「接続済み」に変わります。
コード編集/実行
あとはコードのセル部分を表示して、実行や編集の操作を行います。
画面で赤枠で囲ってある部分をタッチすると実行ボタンが表示され、青枠で囲ってある部分をタッチするとコードの編集ができます。
実行ボタンが表示されたところ。
左上にあるハンバーガーメニュー(〓 みたいな表示のボタン)をタッチすれば、ファイルの保存や一括実行等ができます。
コードの編集は、スマフォのソフトウェアキーボードだと厳しいところはあると思いますが、
どうしても快適にコードを書きたければBluetoothキーボードを接続して使えばいいと思います。
結構コンパクトなキーボードが販売されていますし、PCと違って持ち込みで問題にされる可能性は低いのではないでしょうか。
その他
Googleドライブをマウント
Google Colaboratory はGoogleドライブにファイルを保存できると同時に、Google Colaboratory からGoogleドライブをマウントできます。
こんなコードをセルで実行すると、一時的にマウントするためのコードを要求する画面と、ログインしてコードを得るためのリンクが画面上に表示されるます。
from google.colab import drive drive.mount('/content/drive')
ログイン後に表示されるコードを先程のコード入力画面に入力すると、ドライブのファイルが Google Colaboratory 直接参照できるようになります。
これは例えば、ドライブに置いてあるサイズの大きなファイルやExcelファイルなどを読み込みたいという場合に便利に使うことができるのではないでしょうか。
但し、Googleドライブには容量制限があるので、それを超えないように注意しておく必要があります。(有料で追加は可能ですけど)
コマンドの実行
Google Colaboratory のバックエンドでPythonを動かすための仮想マシンが起動している、ということを上の方で書きました。
ということは Linuxコマンドを使えるということでもあります。試しに、セル上で "!cat /etc/os-release" を実行してみたらこんな結果が表示されました。
NAME="Ubuntu" VERSION="18.04.1 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.1 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic
Ubuntu 18.04 LTSが動いている事がわかります。
gitも使えますしローカルディスクの割当もあるので、GitHubからコードやデータをチェックアウトしてきて使うとかも可能。
巨大なファイルは事前にGoogleドライブに置いておけば使うのも簡単ですね。
注意点
Google Colaboratory は無料で使えるのですが、実行できる時間に制限があります。
以下の条件に引っかかると、バックエンドで動作している仮想マシンがシャットダウンされてしまいます。
- 最大12h経過
- なにも実行されていない状態、または実行中でもブラウザでタブが開かれていない状態で90分経過
.ipynb ファイルはGoogleドライブに保存されているのですが、仮想マシンがシャットダウンされると処理途中だったモデルやそこまでの実行結果を保存していたメモリ、環境変数などが消えてしまします。この点は注意が必要です。(僕が仕事で使うのには向かないと考える理由の一つです)
おわりに
Google Colaboratory、いかがでしょうか?
個人的にはとても便利で良いサービスだと思います。
正式なサービスとして誰にでも進められるものではないかもしれませんが、Pythonを始めたいけどどこから始めればいいかわからないという場合には使ってみ価値はあると思います。
ということで、興味を持った人は使ってみてもらえると嬉しいです!