Pythonで作ったツールをGoogle Colaboratoryで共有・公開する方法

技術

Pythonをゴリゴリ書いていると、ふと誰かに共有したくなる時がある。

ツールでも、分析結果でも共有するということが重要。

ただPythonの場合exeファイル化するのが非常に難しい。

できたとしても動作が遅かったり、問題点は多い。

それでもPythonが便利なのは周知の事実。

さてどうしたものかと考えていた時に見つけたのが「Google Colaboratory」

発音はコラボラトリィ?でいいのか。

どうやらオンラインで動くjupyter notebookということだった。

pipも動くし、なんとseleniumでブラウザ操作もできるらしい。

これならわざわざpython環境を他人のPCにセットアップしなくてもいいし、即座に共有が行える。

早速どうやって使うのか、何ができるかを調べてみた。

Google Colaboratoryの概要

Google Colaboratoryとはブラウザ上で動くjupyter notebook環境です。

Colaboratoryと書かれたりColabと書かれたりしていますが、どちらも同じものです。

Google Colabの説明動画

jupyter notebook(ジュピターノートブック)とはなんぞやという話ですが、Anaconda環境をインストールすると付いてくるPythonの開発環境のようなものです。

プログラムを編集し、即座に実行することができ、主にデータ分析の分野で使われます。

グラフなどをファイルに出力しなくてもjupyter notebook上に表示ができ、コードの修正や追加が簡単にできるようになっています。要するに効率化ツールですね。

jupyter notebookの環境は、Pythonがインストールされている端末がなければ動きません。

なのでjupyter notebookのファイル(ipynb)は共有するのが困難です。

Google Colabはそれがブラウザ上で動かせるということでした。

マジ?と思われる方がいると思いますが、マジです。

開発用の高性能PCを貸してもらえるようなものです。そしてそれを複数人で共有可能・・・。

なんだただの神か・・・。

これがGoogleの力ですね。頭が上がりません。

ということで使い方を調べてみます。

Google Colabの使い方

Google Colabページ

https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja

上記のURLにアクセスするだけでColabを使い始めることができます。

Googleアカウントを持っていない人は作ってログインしておきましょう。

ファイル > Python3の新しいノートブックをクリックします。

この時点で、自分のGoogle Driveにjupyter notebookのファイルが自動で保存されています。

いやいや、どんだけ簡単なんですか。

これだけでもうpythonを使う準備が整いました。

早速試しにサンプルコードを動かしてみます。

以下のコードを入力してCtrl+Enterを押して実行。

import matplotlib.pyplot as plt

x  = [1, 2, 3, 4, 5, 6, 7, 8, 9]
y1 = [1, 3, 5, 3, 1, 3, 5, 3, 1]
y2 = [2, 4, 6, 4, 2, 4, 6, 4, 2]
plt.plot(x, y1, label="line L")
plt.plot(x, y2, label="line H")
plt.plot()

plt.xlabel("x axis")
plt.ylabel("y axis")
plt.title("Line Graph Example")
plt.legend()
plt.show()

出ました。ちゃんとpythonが動いています。

そのまんまjupyter notebookです。

ではこのファイルを共有してみます。

ノートブックを共有する方法

  • 画面右上の共有ボタンを押す
  • 「他のユーザーと共有」で、閲覧権限を選択して、官僚を押す

これもめちゃくちゃ簡単です。

画面右上の共有を押す。

出てきた小窓の右上の、「共有可能なリンクを取得」を押しましょう。

そうするとurlが発行されますので、それを共有したい相手に送って終わりです。

共有の種類があるようです。

  • リンクを知っている全員が編集可
  • リンクを知っている全員がコメント可
  • リンクを知っている全員が閲覧可

3種類あります。この辺りは文字通りですね。

デフォルトでは「リンクを知っている全員が閲覧可」になっています。

スプレッドシートなどですでに共有をしている人には馴染みのある操作でしょう。

ツールなども共有可能

Pythonでツールを作って作業を効率化されている方は多いと思います。

例えばスクレイピングしてきたデータを加工し、データベースに保存。グラフを定期的に出力。なんていう作業です。

調べてみるとrequestも使えますし、pandasはもちろん、seleniumも使えるようでした。

requestなどはまぁ使えるだろうと思いました、まさかseleniumまで使えるとは・・・。

ColaboratoryでSeleniumが使えた:javascriptで生成されるページも簡単スクレイピング

JSを使ったサイトをスクレイピングしたいと思ったら、ブラウザでのレンダリング処理が必須です。

そこもできるとなると、もうローカルでPython環境を構築する必要もあまりないなと思いました。

(Djangoなどでウェブサービスを作りたいという場合は、もちろん別ですが)

一応制限もあるようで、長時間の運用はできないようになっているとのことでした。

90分だったり、12時間だったりで止められるようです。

Google Colabratoryで12時間連続稼働させるときの進捗ログ

Google Colaboratoryの90分セッション切れ対策【自動接続】

とにかくこれで端末を気にせずにPythonも書けますし、共有もできそうです。

Colabを使って色々試してみようと思いました。

以上です。

番外編:Colabで機械学習入門

このまま終わるとColabの本当の素晴らしさが伝わらないまま終わりそうなので、追記しておきます。

Colabratoryの素晴らしさはなんと言ってもGPUが使えることにあります。

そしてGPUは機械学習(ディープラーニング)に欠かせないものです。

【図解】なぜGPUはディープラーニング・AI開発に向いているの?選び方は?NVIDIAさんに聞いてきました

ちなみにGPUはそれなりに高いです。

数万円から数十万円とピンキリですが、やはり高いGPUは計算が速いというメリットがあります。

昨今流行りのディープラーニングですが、AIは大量のデータが用意できてやっと使えるようになります。

そして大量のデータを学習してやっと動かせるようになります。

なのでAI開発はスペックの高いコンピュータがあればあるほど有利になるんですね。

個人が良いGPUを購入するのはやはりハードルが高いです。

そこで役に立つのがColabです。

ColabはGPUをなんと使うことができます。

やはり神ですね。

GPUのスペックですが、コマンドを打ち込むことで確認することができるようです。

初期設定のままでは、GPUを使わない設定になっているので、使う設定にまずはします。

!cat /proc/driver/nvidia/gpus/0000:00:04.0/information

上記のコードを入力してGPUのスペックを確認すると。

「Tesla K80」これがcolabで使われているGPUのようです。

早速お値段を検索すると・・・。

27万!!

これを無料で使わせてくれるなんて・・・。

Googleは本当に偉大だなと思いました。

技術

Posted by sensiki