Chrome拡張機能でGoogle Colabを定期実行

2020年3月2日

Chromeの拡張機能でGoogle Colabを定期実行したい人向けの記事になります。

ほぼ環境構築なしで、GPUが利用できるGoogle Colaboratoryは本当にすごいですよね。

そこで、このすごいツールを最大限活かすために自動で定期実行する方法をご紹介します。

Chromeの拡張機能を3つ使用します。

「Selenium+python」での自動実行も検討しましたが、ロボットブラウザとして開かれたChromeではGoogleアカウントにログインできなかったため別の手法を考えました。

Google Colabで実行時刻一覧を表示

定期実行するプログラムは何でも良いですが、定期実行した時刻が分かるようGoogle Colaboratoryで実行時刻の一覧を表示するコードをご紹介します。

  1. Google Colabにアクセスします。
  2. 「新規作成」を選択します。
  3. pythonコードを記入します。
import datetime as dt

# 現在時刻の取得
now = dt.datetime.now()

# 現在時刻をファイルに出力
with open("./result.txt","a") as f:
  f.write(str(now)+"\n")

# 実行時刻一覧を出力
with open("./result.txt","r") as f:
  print(f.read())

4. 「▶️」を押して実行します。

複数回実行すると実行時間の一覧が表示されていきます。このプログラムを定期実行していきます。

UI. Vision RPAで自動化

UI. Vision RPAを使用して、自動でChromeを操作します。手順は以下になります。

1. UI. Vision RPAをインストールします。

2. UI. Vision RPA を開きます。

3. 「+Macro」をクリックします。

4. 「Record」をクリックします。

5. chromeでGoogle Colabの「▶️」ボタンをクリックして、マクロを記録します。

実行すると、自動で操作が記録されていることが確認できます。

6. 「Stop Record」をクリックします。

7. 「Play Macro」をクリックして、自動で実行されることを確認します。

8. 作成したMacroをhtmlとして保存します。

この保存したHTMLを開くだけで実行されることが確認できます。この機能はSeleniumではなかったので、優秀な機能ですね。

cronTabで定期実行

ここまでで保存したHTMLファイルを開くだけでGoogle Colabを実行することができるようになっていると思います。あとは指定時刻にHTMLファイルを開くことができれば、定期実行が可能となります。そこで利用する拡張機能はcronTabです。この機能を使うことで定期的に特定のpath(URL等)を開くことができます。手順は以下になります。

1. cronTabをインストールします。

2. cronTabを開きます。

3. 先程のHTMLファイルを定期的に開く設定をします。URLにはファイルがある場所(path)を記入します。ここで末尾に「?direct=1」と追記することで、HTMLファイルを開いたあとに「OK」を押す必要がなくなり自動化できます。逆に、この追記が無い場合、「OK」ボタンを押す必要があり、自動実行することできません。また、下の例では2分おきに自動実行している例です。

Tab Wranglerで自動でTabを閉じる

cronTabでは自動で新しいTabが開いてしまいます。そのため、自動でTabを閉じないとTabがどんどん生成されてしまいます。そこで、Tab Wranglerで自動でタブを閉じる方法をご紹介します。

1. Tab Wranglerをインストールします。

2. Tab Wranglerを開き、設定します。設定は個人の好みによると思います。

以上で、Google ColabをChromeの拡張機能だけで定期的に実行することができます。これでDeep Learningの学習を定期的に行うことができ、研究が捗りますね。もちろん、定期的に時系列データの予測も可能です。AlgoAIでは、定期的に時系列データを予測し、Tweetしていました。もしよろしければTwitterをフォローしてくださいね。

Google Colabで仮想通貨のデータ取得やFXのデータ取得のプログラムも公開しています。