Google colaboratory Google Colab会话超时

Google colaboratory Google Colab会话超时,google-colaboratory,Google Colaboratory,在报告中提到 虚拟机在闲置一段时间后会被回收,并由系统强制执行最长的生存期 最大寿命和空闲时间是固定的还是可变的?有什么方法可以预测它们吗?关闭浏览器需要90分钟。如果浏览器保持打开状态,则为12小时。此外,如果关闭浏览器时代码单元格正在运行,如果同一单元格尚未完成,则重新打开浏览器时,该单元格仍将运行(即使在浏览器关闭后,当前正在执行的单元格仍将运行)问题: 我在训练我的模型,但如果我不响应,谷歌colab会在30分钟后自动断开连接。我的数据丢失了 解决方案: 因此,要防止这种情况,只需在控制

在报告中提到

虚拟机在闲置一段时间后会被回收,并由系统强制执行最长的生存期


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

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

问题: 我在训练我的模型,但如果我不响应,谷歌colab会在30分钟后自动断开连接。我的数据丢失了

解决方案: 因此,要防止这种情况,只需在控制台中运行以下代码,它将防止您断开连接。
Ctrl+Shift+i
打开inspector视图。然后转到控制台

功能点击连接(){
控制台日志(“工作”);
document.querySelector(“顶部工具栏>colab连接按钮”).shadowRoot.querySelector(“连接”).click();
}
设置间隔(单击连接,60000)
它会一直点击页面,防止页面断开连接。 它为我解决了这个问题

或者,您也可以尝试以下代码段:

interval=setInterval(函数(){
控制台日志(“工作”)
var选择器=“#顶部工具栏>colab连接按钮”
document.querySelector(选择器).shadowRoot.querySelector(“#连接”)。单击()
setTimeout(函数(){
document.querySelector(选择器).shadowRoot.querySelector(“#连接”)。单击()
}, 1000)
}, 60*1000)

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

下面是代码:(请确保在安装pynput之前安装pip)


在命令行窗口上运行此脚本,然后按“s”键开始自动单击,按“e”键退出,然后将鼠标指针留在代码单元格上(通常会在一定延迟后单击)。

改进为@Ashish Anand的答案

要启动时,请使用此代码:

功能点击连接(){
控制台日志(“工作”);
document.querySelector(“顶部工具栏>colab连接按钮”).shadowRoot.querySelector(“连接”).click();
}
var clicker=setInterval(ClickConnect,60000);
当您需要停止时,请输入以下代码:

clearInterval(clicker);

如果它是打开的,并且我在不断地处理它,比如循环(更改参数,然后执行2-3个小时,检查结果),该怎么办?在这种情况下,会话是否也会在12小时后结束?事实是,当我实际观察到它时,它会在18分钟内断开连接,而不是阅读谷歌的文档。我上传的文件还在那里。有时文件会消失,我不得不重新上传。我必须去观察那个超时是什么。@GeoffreyAnderson:如果你装载你的驱动器并上传到它,你的数据不会消失,如果它是在一个类似于
csv、图像、视频等的文件中。使用google.colab import drive的
非常简单;mount('/content/gdrive')
谢谢。它对我有用。美好的现在我不必一天上传很多次数据文件。Hi@Ashish我收到了这个错误
未捕获类型错误:无法在ClickConnect(:3:55)
读取null的属性“click”。您能帮忙吗?元素
“colab工具栏按钮#连接”
似乎已经不存在了,所以我怀疑它是否还能工作。从2020年8月起,更改为:document.querySelector(“#顶部工具栏>colab连接按钮”).shadowRoot.querySelector(#连接”).click();对我来说,经过一段时间的训练后,我只会看到课程横幅,底部没有“关闭”按钮——也就是说,我必须在横幅(灰色部分)之外的任何地方单击,而不是在特定的按钮上单击。我该如何实现自动化?编辑:上面的代码运行时没有错误,但什么也不做。在安装pynput-1.6.8后,当我尝试在Google Colab中运行该代码时,我得到一个DisplayNameError。错误在第2行:
来自pynput.mouse import按钮,控制器
,它说:
displayname错误:坏的显示名”“
有人在Google Colab内部工作吗?尝试在Google Colab外部运行它,比如在spyder中,甚至在提示命令中
clearInterval(clicker);