web-dev-qa-db-ja.com

Google Colabセッションタイムアウト

FAQには、「仮想マシンはしばらくアイドル状態のときにリサイクルされ、システムによって最大寿命が強制される」と記載されています。

最大寿命とアイドル時間は固定ですか、それとも可変ですか?それらを予測する方法はありますか?

16
Sia

ブラウザを閉じると90分です。ブラウザを開いたままにしておくと12時間。さらに、コードセルが実行されている状態でブラウザーを閉じた場合、同じセルが終了していなくても、ブラウザーを再度開いても引き続き実行されます(ブラウザーを閉じた後でも、現在実行中のセルは実行され続けます)。

20

問題:モデルをトレーニングしていましたが、応答しない場合、30分後に自動的にgoogle colabの接続が切断されます。そして、私のデータは失われます。

解決策:これを防ぐには、コンソールで次のコードを実行するだけで、切断できなくなります。 Ctrl+ Shift + iインスペクタービューを開きます。次に、コンソールに移動します。

function ClickConnect(){
console.log("Working"); 
document.querySelector("colab-toolbar-button#connect").click() 
}
setInterval(ClickConnect,60000)

それはページをクリックし続け、接続が切れるのを防ぎます。それは私のために問題を解決しました。

10
Ashish Anand

セッションタイムアウトを克服する別の方法は、pythonでautoclickスクリプトを実行することです(特に、colabでコードを実行しているときにコンピューターを使用しない場合)

ここにコードがあります:(前にpip install pynputをpipしてください)

import threading
from pynput.mouse import Button, Controller
from pynput.keyboard import Listener, KeyCode


delay = 20 #this is the delay of the autoclick (20 seconds here)
button = Button.left
start_stop_key = KeyCode(char='s')
exit_key = KeyCode(char='e')


class ClickMouse(threading.Thread):
    def __init__(self, delay, button):
        super(ClickMouse, self).__init__()
        self.delay = delay
        self.button = button
        self.running = False
        self.program_running = True

    def start_clicking(self):
        self.running = True

    def stop_clicking(self):
        self.running = False

    def exit(self):
        self.stop_clicking()
        self.program_running = False

    def run(self):
        while self.program_running:
            while self.running:
                mouse.click(self.button)
                time.sleep(self.delay)
            time.sleep(0.1)


mouse = Controller()
click_thread = ClickMouse(delay, button)
click_thread.start()


def on_press(key):
    if key == start_stop_key:
        if click_thread.running:
            click_thread.stop_clicking()
        else:
            click_thread.start_clicking()
    Elif key == exit_key:
        click_thread.exit()
        listener.stop()


with Listener(on_press=on_press) as listener:
    listener.join()

このスクリプトをコマンドラインウィンドウで実行し、キー「s」を押して自動クリックを開始し、「e」を押して終了します。その後、マウスポインターをコードセルに置いたままにします(通常、一定の遅延後にクリックします)。

0
Rafik