1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Google ColabとVSCodeでSignateの環境構築

Last updated at Posted at 2022-04-01

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さんが推奨している使用方法ではないことを多くやっているので、急に使えなくなるリスクなどありそう
  • 使用する際は自己責任でお願いします
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?