我可以运行 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 提供的免费 G​​PU/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

如何在 Google Colab 笔记本的“.py”文件中运行 Python 脚本?

Google Colab 笔记:介绍篇

Google Colab使用学习笔记

逆向工程:揭示Google Colab未公开的秘密

逆向工程:揭示Google Colab未公开的秘密