メインコンテンツへスキップ
見出し画像

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は使用できなくなりました。

    Google Colaboratoryのコンピュートユニット、どれくらいかかるのかざっと調査してみた。

    Colab Proだと、P100で1日で使い切る。
    Colab Pro+だと、A100で1日半。
    逆にCPUはもちろん、TPUのコンピュートユニットはかなり抑えられている。 pic.twitter.com/KekbTJDFdd

    — tomo-makes (@tomo_makes) September 30, 2022

    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]

    You can now terminate Colab sessions programmatically with the following code:

    from google.colab import runtime
    runtime.unassign()

    The new unassign() function marks the currently connected runtime for deletion and disconnects any notebook sessions.

    — Colaboratory (@GoogleColab) September 12, 2022

    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は切り離されていることに気付いたというレベルの低さです。

     
     

    KIYO

     
     
    普段は製造業で企画/開発/設計しております。記事はプログラミング・機械学習、IoT関係の記事をメインで作成し、なるべく1つの記事で知りたいことを網羅していきます。内容は学術的より実装・アウトプット(ほしくなるもの)を重視して作成しています。 面白そうな仕事があればやりたいです!

    あなたへのおすすめ