我可以运行 Google Colab(免费版)脚本然后关闭我的计算机吗?
Posted
技术标签:
【中文标题】我可以运行 Google Colab(免费版)脚本然后关闭我的计算机吗?【英文标题】:Can I run a Google Colab (free edition) script and then shut down my computer? 【发布时间】:2019-07-29 18:20:47 【问题描述】:我可以运行 google colab(免费版)脚本然后关闭我的计算机吗?
我正在使用交叉验证训练几个深度学习模型,因此我想知道我是否可以关闭窗口或同时在云中运行训练的计算机。
【问题讨论】:
也许这是您正在寻找的东西unix.stackexchange.com/questions/4442/…您想从 google-colab 机器向您的 PC 发送一些消息吗? 感谢您的回答,但这不是我要找的。span> 【参考方案1】:已编辑:关闭浏览器后,Colabs 实例最多会运行
12 小时90 分钟,然后您的运行时才会被视为空闲并被回收。
同时,最好定期保存模型权重以避免丢失工作。
详情:
没有关于“空闲”和“最长生命周期”持续时间的官方参考,但 testing done by Korakot Chaovavanich 表明:
正在运行的笔记本的“最长寿命”为12 小时(浏览器打开) '空闲'笔记本实例在 90 分钟后中断 您最多可以同时运行 2 个笔记本 如果在实例仍在运行时关闭笔记本窗口并打开它,单元格输出和变量仍将保留。但是,如果笔记本实例已被回收,您的单元格输出和变量将不再可用。您可以尝试的一个偷偷摸摸的解决方法是在您的移动浏览器中打开 Colabs 实例,以防止该实例被视为“空闲”。
您自己的里程会因个人经验而异,我有时会稍微缩短持续时间。但是只要你检查你的模型(定期保存训练权重),你应该能够在 VM 被回收之前完成大量的训练,之后你可以简单地将权重加载到新 VM 实例上的模型中并继续训练。
但是,如果您希望一次训练模型超过 12 小时,您可以run Google Colaboratory on a local instance 或标准 Jupyter Notebook。但是你会放弃 Colaboratory 提供的免费 GPU/TPU。 (检查点在这里仍然是个好主意!)
来自Google Colaboratory FAQ的相关问题:
我的代码在哪里执行?如果我关闭浏览器窗口,我的执行状态会怎样?
代码在专用于您帐户的虚拟机中执行。虚拟机在空闲一段时间后会被回收,并具有系统强制执行的最长生命周期。
我如何使用 GPU,为什么它们有时不可用?
Colaboratory 旨在用于交互式使用。长期运行的背景 可能会停止计算,尤其是在 GPU 上。请不要使用 加密货币挖掘实验室。不支持这样做,并且 可能导致服务不可用。我们鼓励希望的用户 通过 Colaboratory 的 UI 运行连续或长时间运行的计算 使用本地运行时。
【讨论】:
根据我自己最近的经验,我相信 Colab 最多会给你分配 12 小时的 GPU 使用时间,之后大约有 8 小时的冷却时间,你才能再次使用计算资源。就我而言,即使没有 GPU,我也无法连接到实例。我不完全确定下一点,但我认为如果您一次运行 3 个实例,那么您的 12 小时会以 3 倍的速度耗尽。我不知道 12 小时限制会在什么时间后重置,但我猜可能是一天。 您是否测试过让它在智能手机上运行? 我最后一次尝试这个是在 2019 年初,我不确定它今天是否仍然有效。 什么是“空闲”状态?如果我不单击 colab 选项卡,而是在浏览器中打开它,这是否也被视为“空闲”状态?那么最长 12 小时的限制呢?它是否仅在您使用托管 GPU/TPU 时才有效,还是在您在本地运行 colab 时也存在限制?【参考方案2】:打开你的浏览器控制台,复制粘贴下面的代码,这样可以避免你因为空闲而被踢。
function ClickConnect()
console.log("Working");
document
.querySelector('#top-toolbar > colab-connect-button')
.shadowRoot.querySelector('#connect')
.click()
setInterval(ClickConnect, 60000)
附言。无论如何,您都会在 12 小时后被踢,因此请确保将您的进度保存到您的 Google 云端硬盘中。
【讨论】:
我做到了。现在我对总是弹出的对话框感到恼火。我该如何撤消此操作?还是禁用这个? 如果你生气了,说明你在找它,如果你在找它,如果你可以移动鼠标来避免因为空闲而被踢,那么使用它有什么意义呢? ? ? 是的。我指的是在离开屏幕很长一段时间后使用它,然后又回来继续工作。 相关提示:为长时间运行的笔记本创建一个 VM,然后将 VNC 放入其中。这样,您可以关闭当前机器或关闭所有窗口,而不必担心丢失您的工作。我已经尝试了所有其他技巧,这对我来说效果最好。 @AdamMurphy 请参考geeksforgeeks.org/javascript-cleartimeout-clearinterval-method【参考方案3】:壳循环
对我来说,我选择通过 ssh Ngrok chroot 进入 VM 并在后台运行命令 shell(循环)while true;do sleep 300; done &
我正在使用&` for 在后台运行此命令
所以我可以退出 colab 的网站并让 VM 工作 12 小时
ssh Ngrok
在 colab 中使用 ssh 的最佳方式,您必须在 ngrok.com
中签名一次并获取您的 OAuth 密钥并将此单元格添加到您的 colab 笔记本中
#@title **SSH**
! pip install colab_ssh --upgrade &> /dev/null
Ngrok = True
try:
if username:
pass
elif password:
pass
except NameError:
!echo "root:root" | chpasswd
username='root'
password='root'
#@markdown [OAuth](https://dashboard.ngrok.com/auth)
ngrokToken = "" #@param type:'string'
def runNGROK():
from colab_ssh import launch_ssh
from IPython.display import clear_output
launch_ssh(ngrokToken, password)
clear_output()
print("ssh", username, end='@')
! curl -s http://localhost:4040/api/tunnels | python3 -c \
"import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'][6:].replace(':', ' -p '))"
if Ngrok:
if ngrokToken == "":
print("No ngrokToken Found, Please enter it")
else:
runNGROK()
现在在 colab 单元格中的 Edite 文本中通过您的 OAuth 密钥,在 3-9 秒后您会看到像这样的 ssh
ssh root@2.tcp.ngrok.io -p 13225
不要忘记修改root用户的密码(默认是root),为了更安全,你应该修改root用户的linux密码!echo "root:new password" | chpasswd
和python变量:password =password='new password'
,你必须匹配linux密码和var python密码,请看上面的这条线:
print("No user found using username and password as 'root'")
!echo "root:t" | chpasswd
username='root'
password='root'
【讨论】:
【参考方案4】:在python中使用多进程创建另一个函数并在那里开始while循环!那个while循环不会让它睡觉!
【讨论】:
以上是关于我可以运行 Google Colab(免费版)脚本然后关闭我的计算机吗?的主要内容,如果未能解决你的问题,请参考以下文章
01google Colab 使用教程 免费GPU google Colaboratory 上运行 pytorch tensorboard