是否有一种方法以编程方式防止谷歌Colab超时断开?

笔记本电脑自动断开连接的情况如下:

谷歌Colab笔记本的空闲超时为90分钟,绝对超时为12小时。这意味着,如果用户没有与他的谷歌Colab笔记本进行交互超过90分钟,其实例将自动终止。此外,Colab实例的最大生存期为12小时。

自然,我们希望自动地从实例中挤出最大的值,而不必不断地手动与它交互。这里我将假设常见的系统需求:

Ubuntu 18.04 LTS (Bionic Beaver), Windows 10或Mac操作系统 对于基于linux的系统,使用流行的桌面环境,如GNOME 3或Unity Firefox或Chromium浏览器

我应该在这里指出,这样的行为并不违反谷歌Colab的使用条款,尽管根据他们的常见问题解答,这是不鼓励的(简而言之:从道德上讲,如果你真的不需要它,那么用完所有的gpu是不可以的)。


我目前的解决方案非常愚蠢:

首先,我把屏保关掉,这样我的屏幕就一直开着。 我有一个Arduino板,所以我只是把它变成了一个橡胶鸭子USB设备,让它在我睡觉的时候模拟原始的用户交互(只是因为我手头有其他用例)。

有没有更好的办法?


当前回答

function ClickConnect()
{
    console.log("Working...."); 
    document.querySelector("paper-button#comments").click()
}
setInterval(ClickConnect, 600)

这对我很有效,但要明智地使用它。

其他回答

YouTube视频“如何防止谷歌Colab断开|一个简单的解决方案”中的解决方案对我很有效。

安装pynput库,它允许您控制和监视输入设备。

pip install pynput

现在,在您的本地机器上执行这段代码,并将鼠标光标放在正在运行的Colab笔记本中的一个空单元格中。

from pynput.mouse import Controller,Button
import time

mouse = Controller()

while True:
    mouse.click(Button.left,1)
    print('clicked')

    time.sleep(5)

我使用宏程序定期点击RAM/Disk按钮来整晚训练模型。诀窍是配置一个宏程序,点击Ram/Disk Colab工具栏按钮两次,两次点击之间的间隔很短,这样即使运行时断开连接,它也会重新连接回来。(第一次点击用于关闭对话框,第二次点击用于重新连接)。 然而,你还是得整晚打开笔记本电脑,可能还得固定Colab标签。

更新(2021年7月)。

function ConnectButton(){ 
    console.log("Working"); 
    document.querySelector("#connect").click() 
}
setInterval(ConnectButton, 60000);

当所有这些都失败时,您可以通过订阅谷歌Colab Pro+获得后台执行

function ClickConnect(){
    console.log("Clicked on connect button"); 
    document.querySelector("connect").click() // Change id here
}
setInterval(ClickConnect,60000)

试试上面的代码。这对我很有用:)