Python開発の環境はどのように構築されていますでしょうか?
公式Pythonとコードエディタ(VSCodeなど)を組合わせる場合や、あらかじめさまざまなライブラリ群が同梱されている「Anaconda Distribution」の「JupyterNotebook」(以降Jupyter)を活用するなどいくつか選択肢があります。
特に後者の「Jupyter」は、コードの入力と実行、結果の表示をウェブブラウザ上でインタラクティブにおこなうことがことができるため、手軽にちょっとしたコードを試す程度であれば特に不自由さを感じることはなく、初心者にも扱いやすいツールです。
Jupyterについては以下の記事を参照してください。
実はこの「Jupyter」、Google社が提供するクラウドサービス「Google Colaboratory」という環境でも使うことができるのです。
できることは、ほぼ同じですが「Colaboratory」を使うことで次のようなメリットが享受できます。
これらは、「手軽にPython開発を始めてみたい」はもちろんのこと「機械学習や人工知能系APIを実装してみたい(高い負荷がかかる)」といった場合には、メリットが大きいといえるでしょう。
膨大で複雑な計算を繰り返す必要がある使い方をする場合、個人PCのローカル環境のCPU上で動作するJupyterでは少しパワー不足感があることは歪めないからです。
一方、「Colaboratory」は無料で使えるサービスですが、それゆえに制限(デメリット)もあります。(※有償版では制限はありません)
そこで、今回はJupyterと同じような見た目・操作性をもちながら、「手軽に便利」「高速演算処理」をおこなえる、「Google Colaboratory」( 以後Colabと称す)の解説をしたいと思います。
本記事では、Colabの「アクセス方法」「基本操作」「便利な使い方 (GPU/セッションストレージ/Googleドライブとのデータ共有の仕方)」について、そのすべてを解説していきます。
1. Colaboratoryへのアクセス
Colaboratoryは、Google社が提供するPythonのクラウド開発環境です。Googleアカウントさえ取得していれば、誰でも無料で利用することができます。
本節では、まずColabの導入手順について解説します。
手順といっても、何かをインストールするとか何か特別な操作・設定をするといったことは一切ありません。Googleアカウントにログイン後Webブラウザ経由でアクセスするだけです。
アクセス方法は「ColabのURLに直接アクセスする方法」と「Googleのアプリ一覧(Googleドライブ)から環境をつくる方法」の2つがあります。
1.1 ColabのURLからアクセスする
まずは、ColabのURLから直接アクセスする方法です。
ColabのURLは以下の通りです。あらかじめGoogleアカウントにログインした状態でアクセスしましょう。
Google Colaboratory: https://colab.research.google.com/
すると、以下(図2)のメニュ画面が表示されるので、既存のプロジェクト(ノートブック **.ipynb)を再開する場合は「最近」「Googleドライブ」タブの履歴の中から所望のものを選択します(➀)。
また「アップロード」タブからは、JupyterNoteで作成したブック(.ipynb)を読込ませることができます(➁)。新規ブックを作成する場合は、「ノートブックを新規作成」を選択します(➂)。
1.2 GoogleドライブからColabにアクセス
次にGoogleドライブからブックを作成する方法です。
トップページ(https://www.google.co.jp)のアプリ一覧から「ドライブ」へ進みます(図3. ➀,➁)。
※ColabはGoogleドライブ内にプロジェクトが作成・保存されていきます。
さらに、Googleドライブのメニューから「新規」→「その他」→「その他」と進みアプリケーション一覧から「Google Colaboratory」を選択する。(図4. ➀,➁,➂)
(※「マイドライブ」フォルダ内の任意の場所で、右クリックでも同様です。)
当然ですが、既存のプロジェクトはドライブ内で選択し立ち上げることができます。
Colabを起動すると図5のようなメインウィンドウ(ノートブック)が表示されます。
保存(Ctrl+Sなどで)すると、自動的にドライブ内に保存されますが、保存先は、メニューの「ファイル」→「ドライブで探す」で確認することができます。
次節では、Colabの基本操作について詳しく解説していきます。
2. ColabratoryでPython開発<基本操作>
本節では、最低限知っておくと便利なColabの基本操作を解説します。
ColabのGUIは、図6のとおりで、主に中央のセルエリア(コード/テキスト)、左端のタスクバー、上部のメインメニューで構成されます。
プログラム開発は主に「セルエリア」で行うことになります。そこで、本節ではセルエリアの「コードセル」と「コメントセル」の紹介、それに合わせて「セッションストレージ」の使い方までを紹介します。
なお、ここで紹介している例は一例です。同じ操作をするにもさまざまな手段があります。実際に試しながら覚えていくのが良いでしょう。
2.1 セル(コードエリア)
Colab(Notebook)では、「セル」と呼ばれるセクションにコードを記述し、実行していきます。セルは必要に応じて追加することができ、「+コード」もしくはショートカット Ctrl + MB(MA) キーで追加します。
不要なセルを削除する場合は、右クリック「削除」を選択するか、ショートカット Ctrl + MD キーで削除できます。
コードの実行は、右クリック「現在のセルを実行」もしくは、ショートカットキー Ctrl + Enter キーで行えます。また、ブック内のすべてのセルを実行するには Ctrl + F9 キーが便利です。
Pythonではインデント(Tab)を多用していきますが、不要なインデントは Shift + Tab キーで戻ります。また、コメント化は Ctrl + / キーで行うことができます。
実行後の出力結果は、コードウィンドウの直ぐ下に表示され、確認ができます。
テキストはもちろんのこと、図や画像なども表示できます。
コードディングと実行結果の確認がシームレスに行えるこる点が、ノートブックの使い勝手の良さです。
2.2 セル(テキストエリア)
セルには、コード以外にもテキストを記述することができます。コードのタイトルやディスクリプション、メモなどを残しておくのに便利です。
テキストも同様に「+テキスト」でセルを追加します。テキストは、「Markdown」の記述スタイルになっています。
Markdownは、文章構成を明示するメークアップ言語で、プレーンなテキストを見やすく装飾した文章を表示できます。代表的な、記述スタイルとしては以下のようなものがあります。
機能 | スタイル | 使用例、その他詳細 |
---|---|---|
見出し | # | #(ヘッダー1), ##(ヘッダー2), ###(ヘッダー3) |
区切り線 | — | |
太字 | **String** | ** Pythonでもっと自由を** |
斜体文字 | *String* | * Pythonでもっと自由を* |
取り消し | ~~String~~ | ~Pythonでもっと自由を~~ |
リスト(番号) | ○. | 1., 2., 3., … |
リスト(箇条書き) | – | |
インデント | > | >, >>, >>> のように字下げを重ねることも可 |
2.3 セッションストレージ(ファイル管理システム)
「セッションストレージ」は、タスクバーの「ファイル」からアクセスします。ノートブックで扱うデータを管理するファイルシステムです。
機械学習のデータセットなどのデータ受け渡しに、このセッションストレージが利用できます。(図9)
注意が必要なのは、セッションが切れるとストレージの内容が初期化されてしまうことです。そうならないためにには、メニューの「ドライブをマウント」するを選択して、Googleドライブとデータ共有する必要があります。
ドライブへのマウントは、プログラム内でもおこなうことが可能です。詳細は、応用編 <3.2項ドライブへのマウントとファイルのアップロード>で解説します。
3. Colabratoryの便利技
ここからは、Colabの応用編として「GPU(TPU)をつかって処理を高速化する」「新しいパッケージをインストールする」「プログラムによって、ドライブにマウント、ファイルのアップロード」する方法などを解説します。
とくに、Colabを活用する最大のメリットは、演算処理にGPUを使える点にありますが、簡単な操作で利用できます。
3.1 GPU/TPUを有効にする方法
Colabでは、Googleのサーバ上にあるGPU(Graphics Processing Unit)を利用することができます。機械学習の計算処理を行うのに適しており、ローカルCPUよりも大幅に計算時間を短縮できる。
本項では、そのGPUを利用する手順を解説します。
デフォルト設定では無効になっているのでGPUを使う場合は有効設定する必要があります。
メニューの ランタイム → ランタイムのタイプ を変更へと進みます。(➀,➁)
ノートブックの設定のダイアログが表示され、ハードウェアアクセレータのリストボックスを None → GPU へ変更し 保存ボタン を押下します。(➀,➁)
選択肢に「TPU」もあります、これは、GoogleのCPUとなります。こちらを選んでも高速化が期待できます。どちらか、速い方を選択すると良いでしょう(環境や負荷状態により異なります)。
なお、Colabには、「有料版」のものもありますが、そちらではGPU/TPUの性能はアップするようです。
GPUを有効設定したら、念のため確認してみましょう。
現在の処理エンジンの選択状況は、次のコードを実行することでも確認できます。<List1>
GPUが有効になっていれば、torch.cuda.is_available() がTrueを返します。
※ 事前にPyorchの導入が必要です。
#現在の処理エンジンがGUP/CPUのどちらなのかを判定するコード(Pytorchを使用した例)
import torch
device = torch.device("cuda0:" if torch.cuda.is_available() else "cpu")
print(device) # GPUならcuda0 / CPUならcpu と表示される
【注意点】
➀. GPUを有効にすると、Notebook内のすべてのセルのセッションが一旦リセットされます。(モジュールのインポートや変数が初期化される) ですので、CPUの切替を行った際はすべてのセルを再実行する必要があります。
➁. また一定期間経過してセッションが切れた場合は、再びGPUの選択をする必要があります。
3.2 ドライブへのマウントとファイルのアップロード (コードで対応)
先述したとおり、Colabはセッションストレージ(一時保存)やGoogleドライブによるファイル管理ができるのでした。<2.3項>
Googleドライブへのマウントやファイルのアップロードは、GUI(Graphical User Interface)を経由することなく、プログラム内で行うこともできます。本項ではその方法を説明します。
ドライブへのマウントする方法は以下の通りです。
まず、セル(コードエリア)に次のコードを入力(➀)・実行します。<List2>
# GoogleドライブとColabとをマウントするコード
from google.colab import drive
drive.mount('/content/drive')
次に、ドライブへのアクセス許可を求める、ウィンドウがポップするので、「Googleドライブに接続」を選択します。(➁) 少し待つと、実行結果に「Mounted at /content/drive」が表示されます。(➂) これでドライブとのファイル共有ができるようになります。(図14_1)
また、少し前のColabでは、次のように認証コードの入力を求められていました。
参考までに掲載しておきます。
【参考】
上記を実行するとURLが表示されるのでアクセスします(➁)。
すると別ウィンドウがポップし認証コードが表示されるのでそれをコピーし(➂)、再度Colabに戻り、入力ボックスへ貼り付ければ(➃)Googleドライブにマウントされます。(図14_2)
この時点で、ドライブ配下のディレクトリはマウントできているので、プログラムでファイルパスを指定して直接データのやり取りができるようになっています。
一方、ドライブからではなく、ローカルPC上のファイルをアップロードするには、次のコード<List3>のように、filesモジュールをインポートし upload() 関数を実行します。図15のように、実行結果に「ファイルの選択ボタン」が表示されるのでクリック、ファイルを開くのダイアログがポップするので所望のファイルを選択します。
# ファイルのアップロード
from google.colab import files
files.upload()
upload()関数の戻り値は、Fileオブジェクト となります。Python標準のFileオブジェクトと同じように、open(), read(), write() などの各種メソッドで処理することが可能です。
3.3 新しいパッケージをインストールする
Colabにはあらかじめ、主要なパッケージ(ライブラリやモジュール類)が導入されていますが、あたらしいパッケージや異なるバージョンのライブラリを導入し直すこともできます。
公式Pythonと同様にパッケージ管理ツール「pip」を使います、先頭に「!」を付加する点に注意してください。
(1) インストールされている、ライブラリとバージョンを調べる
!pip list
!pip freeze
TensorflowやOpencCVといったおなじみのライブラリが導入されています。
(2) 新しいパッケージをインストールする
!pip install <パケージ名>
4. まとめ
いかがでしたでしょうか?
今回はPythonの開発環境としてGoogle Colaboratoryの導入と使い方について解説しました。
JupyterNotebookと親和性がありながら、処理エンジンにGPUを試すことができます。機械学習フレームワークを実装する際は、特に便利サービスだと思います。
Colabを普段使いの開発環境として活用するのも良いかもしれませんね。
最後に、今回の記事のポイントをまとめておきましょう。
・JupyterNoteライクで気軽にPython開発を試せる
・あらかじめ多くのライブラリが導入済み(追加も可能)
・高速な演算処理エンジン(GPU/TPU)を試すことができる
・無料版では、90分未操作時間があると自動でセッションが切断される(デメリット)
ここまで、お読みいただきありがとうございました。