如何防止 Google Colab 断开连接?

新手上路,请多包涵

问: 有什么方法可以以编程方式防止 Google Colab 超时断开连接?

下面介绍导致笔记本自动断开连接的情况:

Google Colab 笔记本的空闲超时时间为 90 分钟,绝对超时时间为 12 小时。这意味着,如果用户超过 90 分钟未与他的 Google Colab 笔记本交互,其实例将自动终止。此外,Colab 实例的最长生命周期为 12 小时。

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

  • Ubuntu 18 LTS / Windows 10 / Mac 操作系统
  • 对于基于 Linux 的系统,使用流行的 DE,如 Gnome 3 或 Unity
  • Firefox 或 Chromium 浏览器

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


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

  • 首先,我关闭了屏幕保护程序,所以我的屏幕一直亮着。
  • 我有一个 Arduino 板,所以我只是把它变成了一个 橡皮鸭 USB ,让它在我睡觉时模拟原始的用户交互(只是因为我手头有它用于其他用例)。

有没有更好的方法?

原文由 hav4ik 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.9k
1 个回答

截至 2021 年 3 月,这些方法都不起作用,因为谷歌添加了一个 验证码 按钮,该按钮会在一段时间后随机弹出。

在此之前,解决方案非常简单,不需要任何 JavaScript。只需在底部创建一个具有以下行的新单元格:

 while True:pass

现在将单元格保持在运行序列中,这样无限循环就不会停止,从而使您的会话保持活动状态。

旧方法:

设置一个 JavaScript 间隔,每 60 秒点击一次连接按钮。

使用 Ctrl+Shift+I 打开开发人员设置(在您的网络浏览器中),然后单击控制台选项卡并在控制台提示符下键入。 (对于 Mac,请按 Option+Command+I)

 function ConnectButton(){
  console.log("Connect pushed");
  document.querySelector("#top-toolbar > colab-connectbutton").shadowRoot.querySelector("#connect").click()
}
setInterval(ConnectButton,60000);

原文由 Tanay Karve 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题