Google ColabとVSCodeでSignateの環境構築


0.概要

  • Signateコンペに参加するにあたって、GPU使って機械学習できる環境をできるだけ楽に構築したかった
  • 参考にさせていただいたサイトをまとめておく

1.ColabでSignate APIを使う

手順

  1. SIGNATEのアカウント設定画面で "API Token" の "作成" をクリック

  2. "新規作成" をクリックしてAPI Token(signate.json)を取得

  3. ダウンロードしたsignate.jsonをGoogle Driveのマイドライブ/.signateにアップロード

  4. signateConnect.pyをGoogle Driveのマイドライブ/Colab notebooks/modulesに配置

    signateConnect.py
    from googleapiclient.discovery import build
    import io, os
    from googleapiclient.http import MediaIoBaseDownload
    from google.colab import auth
    
    def connect():
        auth.authenticate_user()
    
        drive_service = build('drive', 'v3')
        results = drive_service.files().list(
            q="name = 'signate.json'", fields="files(id)").execute()
            signate_api_key = results.get('files', [])
    
        filename = "/root/.signate/signate.json"
        os.makedirs(os.path.dirname(filename), exist_ok=True)
    
        request = drive_service.files().get_media(fileId=signate_api_key[0]['id'])
        fh = io.FileIO(filename, 'wb')
        downloader = MediaIoBaseDownload(fh, request)
        done = False
        while done is False:
            status, done = downloader.next_chunk()
            print("Download %d%%." % int(status.progress() * 100))
        os.chmod(filename, 600)
    
    if __name__ is "__main__":
        connect()
    
    
  5. Google Colabで読み込む

    from google.colab import drive
    import sys
    drive.mount('/content/drive')
    sys.path.append('/content/drive/MyDrive/Colab Notebooks/modules')
    import signateConnect
    
    !pip install signate
    
    signateConnect.connect()
    
  6. Colabの設定としては、ランタイムをGPUにするのと、その他から猫モードにするのがすき

2.Colabの90分制限対策

手順(Mac向け)

  1. スクリプトを作成

    zombie-nize_colab.sh
    #!/bin/bash
    
    for i in `seq 0 12`
    do
       echo "[$i]" `date '+%y/%m/%d %H:%M:%S'` "connected."
       open (Colab NotebookのURL)
       sleep 3600
    done
    
    
  2. 実行権限付与

    terminal
    $ chmod 744 zombie-nize_colab.sh
    
  3. ターミナルから叩いておく

    terminal
    $ ./zombie-nize_colab.sh
    

3.ColabとVSCodeを連携する

注意

  • Colab周りはGoogleさんが推奨している使用方法ではないことを多くやっているので、急に使えなくなるリスクなどありそう
  • 使用する際は自己責任でお願いします