【Colaboratory】Python開発をクラウドで手軽に試す方法【徹底解説】

スポンサーリンク
Pythonの開発環境_GoogleColaboratory DevTools

Japanese | English

Python開発の環境はどのように構築されていますでしょうか?

公式Pythonとコードエディタ(VSCodeなど)を組合わせる場合や、あらかじめさまざまなライブラリ群が同梱されている「Anaconda Distribution」の「JupyterNotebook」(以降Jupyter)を活用するなどいくつか選択肢があります。

特に後者の「Jupyter」は、コードの入力と実行、結果の表示をウェブブラウザ上でインタラクティブにおこなうことがことができるため、手軽にちょっとしたコードを試す程度であれば特に不自由さを感じることはなく、初心者にも扱いやすいツールです。

Jupyterについては以下の記事を参照してください。

実はこの「Jupyter」、Google社が提供するクラウドサービスGoogle Colaboratoryという環境でも使うことができるのです。

できることは、ほぼ同じですが「Colaboratory」を使うことで次のようなメリットが享受できます。

  1. クラウドで、どのようなマシン環境においてもPython開発ができる
  2. 機械学習で多用される「TensorFlowライブラリ」などがあらかじめ導入済み
  3. Googles社が提供する、高速な演算処理エンジン(GPU/TPU)を試すことができる

これらは、「手軽にPython開発を始めてみたい」はもちろんのこと「機械学習や人工知能系APIを実装してみたい(高い負荷がかかる)」といった場合には、メリットが大きいといえるでしょう。

膨大で複雑な計算を繰り返す必要がある使い方をする場合、個人PCのローカル環境のCPU上で動作するJupyterでは少しパワー不足感があることは歪めないからです。

Jupyter環境の不足している点
図1. Jupyterのメリットと物足りない点

一方、「Colaboratory」は無料で使えるサービスですが、それゆえに制限(デメリット)もあります。(※有償版では制限はありません)

一定期間(90分)、未使用状態が続くとセッションが切断される(何度でも再接続は可能)

GPU/TPUに速度制限が発生する可能性がある。


そこで、今回は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)を読込ませることができます()。新規ブックを作成する場合は、「ノートブックを新規作成」を選択します()。

図2. Colaboratoryのログインメニュー

1.2 GoogleドライブからColabにアクセス

次にGoogleドライブからブックを作成する方法です。

トップページ(https://www.google.co.jp)のアプリ一覧から「ドライブ」へ進みます(図3. ,)。

※ColabはGoogleドライブ内にプロジェクトが作成・保存されていきます。

GoogleColab_新規ノートブックの作成方法
図3. Gooogleドライブからブックを作る➀ 

さらに、Googleドライブのメニューから「新規」→「その他」→「その他」と進みアプリケーション一覧から「Google Colaboratory」を選択する。(図4. ,,)

(※「マイドライブ」フォルダ内の任意の場所で、右クリックでも同様です。)

当然ですが、既存のプロジェクトはドライブ内で選択し立ち上げることができます。

GoogleColab_新規ノートブックの作成方法
図4. Googleドライブからノートブックを作る➁

Colabを起動すると図5のようなメインウィンドウ(ノートブック)が表示されます。

GoogleColab_新規ノートブックの作成方法
図5. Colabのメインウィンドウ

保存(Ctrl+Sなどで)すると、自動的にドライブ内に保存されますが、保存先は、メニューの「ファイル」→「ドライブで探す」で確認することができます。

次節では、Colabの基本操作について詳しく解説していきます。

スポンサーリンク

2. ColabratoryでPython開発<基本操作>

Python_基本文法_内包表記

本節では、最低限知っておくと便利なColabの基本操作を解説します。

ColabのGUIは、図6のとおりで、主に中央のセルエリア(コード/テキスト)、左端のタスクバー、上部のメインメニューで構成されます。

GoogleColabratory_各種作業ウィンドウ_rev0.1
図6. ColabのGUI

プログラム開発は主に「セルエリア」で行うことになります。そこで、本節ではセルエリアの「コードセル」と「コメントセル」の紹介、それに合わせて「セッションストレージ」の使い方までを紹介します。

なお、ここで紹介している例は一例です。同じ操作をするにもさまざまな手段があります。実際に試しながら覚えていくのが良いでしょう。

2.1 セル(コードエリア)

Colab(Notebook)では、「セル」と呼ばれるセクションにコードを記述し、実行していきます。セルは必要に応じて追加することができ、「+コード」もしくはショートカット Ctrl + MB(MA) キーで追加します。

不要なセルを削除する場合は、右クリック「削除」を選択するか、ショートカット Ctrl + MD キーで削除できます。

GoogleColab_コードウィンドウ(セル)_rev0.1
図7. コードウィンドウ(セル)

コードの実行は、右クリック「現在のセルを実行」もしくは、ショートカットキー 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., …
リスト(箇条書き)
インデント>>, >>, >>> のように字下げを重ねることも可
表1. Markdown記述スタイルの書式
GoogleColabratory_セル(コメントエリア)_rev0.1
図8. セル(テキストウィンドウ)

2.3 セッションストレージ(ファイル管理システム)

セッションストレージ」は、タスクバーの「ファイル」からアクセスします。ノートブックで扱うデータを管理するファイルシステムです。

機械学習のデータセットなどのデータ受け渡しに、このセッションストレージが利用できます。(図9)

GoogleColabratory_セッションストレージ_rev0.1
図9. セッションストレージ

注意が必要なのは、セッションが切れるとストレージの内容が初期化されてしまうことです。そうならないためにには、メニューの「ドライブをマウント」するを選択して、Googleドライブとデータ共有する必要があります。

GoogleColabratory_ドライブのマウント_rev0.1
図10. ドライブをマウントする

ドライブへのマウントは、プログラム内でもおこなうことが可能です。詳細は、応用編 <3.2項ドライブへのマウントとファイルのアップロード>で解説します。

スポンサーリンク

3. Colabratoryの便利技

ここからは、Colabの応用編として「GPU(TPU)をつかって処理を高速化する」「新しいパッケージをインストールする」「プログラムによって、ドライブにマウント、ファイルのアップロード」する方法などを解説します。

とくに、Colabを活用する最大のメリットは、演算処理にGPUを使える点にありますが、簡単な操作で利用できます。

3.1 GPU/TPUを有効にする方法

Colabでは、Googleのサーバ上にあるGPU(Graphics Processing Unit)を利用することができます。機械学習の計算処理を行うのに適しており、ローカルCPUよりも大幅に計算時間を短縮できる。

本項では、そのGPUを利用する手順を解説します。

デフォルト設定では無効になっているのでGPUを使う場合は有効設定する必要があります。

メニューの ランタイムランタイムのタイプ を変更へと進みます。(,

GoogleColab_GPUの使い方
図11. GPUの有効化の手順➀

ノートブックの設定のダイアログが表示され、ハードウェアアクセレータのリストボックスを NoneGPU へ変更し 保存ボタン を押下します。(,

選択肢に「TPU」もあります、これは、GoogleのCPUとなります。こちらを選んでも高速化が期待できます。どちらか、速い方を選択すると良いでしょう(環境や負荷状態により異なります)。

なお、Colabには、「有料版」のものもありますが、そちらではGPU/TPUの性能はアップするようです。

GoogleColab_GPUの使い方
図12. GPUの有効化の手順➁

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)

GoogleColab_ドライブへのマウント1_rev0.2
図14_1. Googleドライブへのマウント(コードで対応)

また、少し前のColabでは、次のように認証コードの入力を求められていました。

参考までに掲載しておきます。

参考

上記を実行するとURLが表示されるのでアクセスします()。

すると別ウィンドウがポップし認証コードが表示されるのでそれをコピーし()、再度Colabに戻り、入力ボックスへ貼り付ければ()Googleドライブにマウントされます。(図14_2)

GoogleColab_ドライブへのマウント
図14_2. Googleドライブへのマウント(コードで対応)

この時点で、ドライブ配下のディレクトリはマウントできているので、プログラムでファイルパスを指定して直接データのやり取りができるようになっています。


一方、ドライブからではなく、ローカルPC上のファイルをアップロードするには、次のコード<List3>のように、filesモジュールをインポートし upload() 関数を実行します。図15のように、実行結果に「ファイルの選択ボタン」が表示されるのでクリック、ファイルを開くのダイアログがポップするので所望のファイルを選択します。

# ファイルのアップロード
from google.colab import files
files.upload()
GoogleColab_ファイルのアップロード_rev0.1_En
図15. ファイルのアップロード

upload()関数の戻り値は、Fileオブジェクト となります。Python標準のFileオブジェクトと同じように、open(), read(), write() などの各種メソッドで処理することが可能です。

3.3 新しいパッケージをインストールする

Colabにはあらかじめ、主要なパッケージ(ライブラリやモジュール類)が導入されていますが、あたらしいパッケージや異なるバージョンのライブラリを導入し直すこともできます。

公式Pythonと同様にパッケージ管理ツール「pip」を使います、先頭に「!」を付加する点に注意してください。

(1) インストールされている、ライブラリとバージョンを調べる

!pip list

!pip freeze

GoogleColabratory_pipツールの使い方
図16. Colabに予め導入されているライブラリを調べる

TensorflowやOpencCVといったおなじみのライブラリが導入されています。

(2) 新しいパッケージをインストールする

!pip install <パケージ名>

4. まとめ

いかがでしたでしょうか?

今回はPythonの開発環境としてGoogle Colaboratoryの導入と使い方について解説しました。

JupyterNotebookと親和性がありながら、処理エンジンにGPUを試すことができます。機械学習フレームワークを実装する際は、特に便利サービスだと思います

Colabを普段使いの開発環境として活用するのも良いかもしれませんね。

最後に、今回の記事のポイントをまとめておきましょう。

・JupyterNoteライクで気軽にPython開発を試せる

・あらかじめ多くのライブラリが導入済み(追加も可能)

・高速な演算処理エンジン(GPU/TPU)を試すことができる

・無料版では、90分未操作時間があると自動でセッションが切断される(デメリット)

ここまで、お読みいただきありがとうございました。

Japanese | English

タイトルとURLをコピーしました