FAQには、「仮想マシンはしばらくアイドル状態のときにリサイクルされ、システムによって最大寿命が強制される」と記載されています。
最大寿命とアイドル時間は固定ですか、それとも可変ですか?それらを予測する方法はありますか?
ブラウザを閉じると90分です。ブラウザを開いたままにしておくと12時間。さらに、コードセルが実行されている状態でブラウザーを閉じた場合、同じセルが終了していなくても、ブラウザーを再度開いても引き続き実行されます(ブラウザーを閉じた後でも、現在実行中のセルは実行され続けます)。
問題:モデルをトレーニングしていましたが、応答しない場合、30分後に自動的にgoogle colabの接続が切断されます。そして、私のデータは失われます。
解決策:これを防ぐには、コンソールで次のコードを実行するだけで、切断できなくなります。 Ctrl+ Shift + i
インスペクタービューを開きます。次に、コンソールに移動します。
function ClickConnect(){
console.log("Working");
document.querySelector("colab-toolbar-button#connect").click()
}
setInterval(ClickConnect,60000)
それはページをクリックし続け、接続が切れるのを防ぎます。それは私のために問題を解決しました。
セッションタイムアウトを克服する別の方法は、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」を押して終了します。その後、マウスポインターをコードセルに置いたままにします(通常、一定の遅延後にクリックします)。