見出し画像

Google Colaboratory:環境構築無しでPythonを始めよう!

1.概要

 「Pythonを学んでみたい!」けど、どうやって始めてよいかわからない時は「Google Colaboratory」がオススメです。
 参考までにローカルでPythonを使うのであれば下記記事をご参照ください(IDEはVS Code推しです)。

2.Google Colabの特徴・留意事項

 Google Colabの特徴は下記の通りです。

2-1.メリット

環境構築Pythonを使う準備が不要でありすぐに始めることができる。
 →エラーなしでPythonが即使用できる。
 →機械学習や有名なライブラリがインストール済みのためpip installが不要
GPUが使用できる計算速度を早くできるプロセッサーため本格的な機械学習ができる。
●コードの頭に!をつけるとLinuxコマンドが使用できる。
●クラウド環境のためどこからでも同じ環境にアクセスできる。
●アップグレードしなければ無料で使用できる。

 なお課金(Colab Pro)すれば比較的長い時間GPUが使用できていたのですが、2022年10月以降では今まで通りに課金しても長い時間GPUは使用できなくなりました。

2-2.デメリット

●クラウド環境のためローカルPCに簡単に接続できない。例えばローカルPCのファイルを処理したい場合、一度クラウド環境Google Colab上にアップロードする必要がある。
一定時間操作しないと接続が切れる長時間学習が必要な機械学習には不向き
●接続が切れた場合クラウド内で作成したファイルはすべて無くなる。よってスクレイピングした写真や機械学習モデルはGoogle driveやローカルPCに保存する必要がある。

3.Google Colabファイルの作成

Google Colabの使用方法・参考資料は下記の通りです。
1.Googleのアカウントを作成
2.Google chromeをDLしてログイン
3.Google chromeのホーム画面右上のボタンから「ドライブgoogle drive」を選択

画像1

4.左上の「+新規」から「その他」->「Google Colaboratory」を選択

画像2

別タブで下記の画面が出てきたら準備完了です。

画像3

もし「Google Colaboratory」の選択が出ない場合は「Welcome To Colaboratory - Google Research」のサイトを一度開いてみて再実行してみてください。

4.Google Colabの使用

Google colabを実際に使用してみます。コードは下記記事を参照しました。

4-1.操作方法

 細かい操作方法は下記を推奨します。

4-2.設定変更

 「ツール」->「設定」より背景モードやインデントの設定が可能です。

4-3.簡単なコードの実行

 下記のようにコードボックス内にコピペして「Ctrl+Enterまたは左の▶」を実行すると結果が出ました。事前に「pip install pandas_datareader」がなくても環境構築がされているためエラーなく結果が出ました。

画像4

4-4.ライブラリーの追加

下記コードを実行すると「ライブラリがない」とのエラーが出ました。

画像5

 環境構築はされていますが初期に入っていないものもあるため、必要な物は自分でインストールする必要があります。本コードより上のコードセルで「!pip install japanize_matplotlib」とするとライブラリがインストールされます。
 その後に同じコードを実行するとエラーなく処理できます。

画像6

5.Linuxコマンドの使用

 コードブロックに"!"や"%"をつけるとLinuxのコマンドを使用できます。

【コマンド用記号の違い】
●! は、Temporary Sub shell 内で動く:!pip installなど
●% は、永続的:フォルダ移動(%cd)やフォルダ作成(&mkdir)に使用

 参考までに良く使用するコマンド一覧は下記の通りです。

  • cd <path>:"change directory"の略で作業ディレクトリを変更

  • cp <コピーするpath> <コピーされたfileのpath>: ファイルをCopy

  • dir:作業ディレクトリ内のフォルダとファイル一覧取得

  • pwd:作業ディレクトリのパス確認

  • rm <file path>:ファイルを削除

  • zip -r <zip file name>:Zipファイルを作成

  • unzip <zip file path>:Zipファイルを解凍

6.マジックコマンド

マジックコマンド:pd.DataFrameなどを適当にフィルタリングなどしながらブラウズしたい場合「%load_ext http://google.colab.data_table」を使用

7.コードスニペット/Colabでよく使うコード 

 コードスニペットとは「用途に合わせて事前に用意されたコード」です。colabでよく使うコードも含めて紹介します。

7-1.Driveマウント:drive.mount('/content/drive')

 ColabからGoogle Driveへ直接接続(マウント)できるようにします。

[IN]
from google.colab import drive
drive.mount('/content/drive')

[OUT]
マウント完了するとファイル欄に”drive”が出現する

7-2.Sessionの削除:runtime.unassign()

 Colabは無料枠で使用するとGPUやSessoin数の制限があるため、使用していないnotebookはsessionを解除した方がよく、下記コードで実施できます。

[IN]
from google.colab import runtime
runtime.unassign()

[OUT]

7-3.ファイルのアップロード:files.upload()

 Google ColabはローカルPCのファイルを直接処理できない(クラウド環境が自分のPC環境に簡単に接続できない)ため、処理したいファイルなどがあればアップロードする必要があります。処理方法は下記の通りです。

[IN]
from google.colab import files
uploaded = files.upload()

[OUT]

7ー4.OpenCVの画像を出力

 OpenCVでの画像を変換せずに直接読み取ることが出来ます。
※curlコマンドはColabの画像を取得するコマンドのため出力には関係なし

[IN]
from google.colab.patches import cv2_imshow

!curl -o logo.png https://colab.research.google.com/img/colab_favicon_256px.png
import cv2
img = cv2.imread('logo.png', cv2.IMREAD_UNCHANGED)
cv2_imshow(img)

[OUT]

8.参考:Colab用関数まとめ

 すぐに忘れるので6章のスニペット+αから自分が使いやすいようにまとめました。

  • 機能をGoogle Drive内にモジュール化する(colab_utils/colab_utils.py)

  • Colab用だけでなく他に欲しい機能も追加(dfの並列表示など)

  • 実際にColab内で使用する場合はimportできるようにsysでパスを通す

[colab_utils/colab_utils.py]
from google.colab import files, drive, runtime

class Colabutils:
    def __init__(self, setmount=True):
        if setmount:
            self.mount() #インスタンス化時にGoogle Driveをマウント

    def upload(self):
        uploaded = files.upload() #ファイルのアップロードした
    def download(self, path):
        files.download(path) #ファイルのダウンロード
    def delsession(self):
        runtime.unassign() #セッションの削除
    def mount(self):
        drive.mount('/content/drive') #Google Driveのマウント

class HorizontalDisplay:
    def __init__(self, *args):
        self.args = args

    def _repr_html_(self):
        template = '<div style="float: left; padding: 10px;">{0}</div>'
        return "\n".join(template.format(arg._repr_html_())
                         for arg in self.args)
[IN ※Google Colab内]
import sys

def sys_path_append(path):
    if not path in sys.path:sys.path.append(path)
sys_path_append('/content/drive/MyDrive/colab_utils')

from colab_utils import Colabutils, HorizontalDisplay

colabutils = Colabutils(False) #TrueでDriveマウント
print([i for i in dir(colabutils) if not i.startswith('__')])

[OUT]
['delsession', 'download', 'mount', 'upload']

あとがき

 1-3は初学者向けですが、4.拡張機能は自分用で更新予定です。
 なお初めのころはGoogle Colabを使用してPC内にある写真を処理させようとしたら全然だめで、クラウド環境と自宅PCは切り離されていることに気付いたというレベルの低さです。

この記事が気に入ったらサポートをしてみませんか?