Google Colab会话超时

时间:2019-01-05 22:48:11

标签: google-colaboratory

在常见问题解答中提到“虚拟机在空闲一段时间后会被回收,并且具有由系统强制执行的最长生存期。”

最大寿命和空闲时间是固定的还是可变的?有什么办法可以预测它们?

4 个答案:

答案 0 :(得分:7)

改进@Ashish Anand 的回答

当您想开始时使用此代码:

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

以及需要停止时的以下代码:

clearInterval(clicker);

答案 1 :(得分:5)

如果关闭浏览器,则需要90分钟。如果您保持浏览器打开状态,则需要12个小时。此外,如果您在运行代码单元格的情况下关闭浏览器,如果该单元格尚未完成,则当您重新打开浏览器时,它仍将处于运行状态(即使关闭浏览器后,当前正在执行的单元格仍将继续运行)

答案 2 :(得分:2)

问题: 我正在训练模型,但是如果我不回应,则Google colab会在30分钟后自动断开连接。而且我的数据丢失了。

解决方案: 因此,为防止这种情况,只需在控制台中运行以下代码,即可防止您断开连接。 listbox打开检查器视图。然后进入控制台。

Ctrl+ Shift + i

它将继续单击该页面并防止其断开连接。 它为我解决了这个问题。

答案 3 :(得分:1)

克服会话超时的另一种方法是在python中运行自动点击脚本(特别是如果您打算在colab中运行代码时不使用计算机)

下面是代码:(请务必在安装前先安装pynput)

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”键退出,而不是将鼠标指针停留在代码单元上(通常,它会在一定的延迟后单击)。 / p>