はじめに
Google Colab、便利でいいですよね。無料でGPUも使えるし機械学習、特にディープラーニングでガシガシ画像処理したい時はお世話になってます。
ただ厄介なのが90分制限。90分何も操作しないと自動的にセッション切れしてしまって学習が止まってしまうやつです。
まぁ学習中に論文見て手法考えたりとかすればいいんですけど、息抜きしたいとか、寝てる間に学習進めたいとかもあると思うので、それに対応しようと思います。
環境
chrome
Google colab
あとjupyter 環境もあるといいです
pyautoguiを使う
要は自動的にマウスなど動かしてあげればいいのでそういうライブラリがないかと調べてみたらありました。
pyautoguiというやつで色々便利なことができそうです。
pipでインストール
pip install pyautogui
必要なものをインポート
import time
import pyautogui as pgui
以下のコードを学習を実行している環境(今回だとGPUのcolab)以外で実行する
実験的にコードを動かしたりなどは普段jupyter labを使っているのでjupyter labで動かします。
Jupyter環境無ければ、colabはGPUありとGPUなしで同時に2インスタンス立ち上げられるので、GPUなしのcolabタブで実行しましょう
for _ in range(72):
time.sleep(600) # 10分待機
pgui.click(x=652, y=703, duration=1) # 指定した座標に1秒かけて移動してクリック
time.sleep(1) # 1秒待機
pgui.click(x=664, y=638, duration=1)
pgui.click()で指定した座標に自動的にマウスカーソルを移動して、クリックします。引数durationの値で何秒かけて移動するか指定できます。
指定した座標がどの位置なのかわかんねーよってなると思うので
pgui.position()
を実行すると今マウスカーソルがいる位置の座標を表示してくれます。
これを実行することで10分待機した後、移動してクリック、1秒待って、別の場所に移動してクリック
という動きを72回繰り返します。(単純計算で72×10分=12時間)
72という数字は学習にかかりそうな時間で好きに変えてください。
あとは
①chromeでcolab(学習を実行する場所)とjupyterlab(pyautoguiを実行する場所)を別タブで開く
②jupyterlabのpyautoguiを実行
③colabに表示タブを切り替え、学習スタート
とすれば自動的にcolabの画面上でマウスカーソルが行ったり来たりするので、勝手にセッション切れや、スリープしません。
パソコン自体のスリープ機能もオフにしておくとなお、いいでしょう。
まとめ
心置きなく睡眠中に学習が進められます。止まってないか神経すり減らさなくて済みそうです。