【问题标题】:Can I run a Google Colab (free edition) script and then shut down my computer?我可以运行 Google Colab(免费版)脚本然后关闭我的计算机吗?
【发布时间】:2019-07-29 18:20:47
【问题描述】:

我可以运行 google colab(免费版)脚本然后关闭我的计算机吗?

我正在使用交叉验证训练几个深度学习模型,因此我想知道我是否可以关闭窗口或同时在云中运行训练的计算机。

【问题讨论】:

  • 也许这是您正在寻找的东西unix.stackexchange.com/questions/4442/…您想从 google-colab 机器向您的 PC 发送一些消息吗?
  • 感谢您的回答,但这不是我要找的。​​span>

标签: python google-colaboratory


【解决方案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 放入其中。这样,您可以关闭当前机器或关闭所有窗口,而不必担心丢失您的工作。我已经尝试了所有其他技巧,这对我来说效果最好。
【解决方案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循环不会让它睡觉!

    【讨论】:

      猜你喜欢
      • 2020-11-15
      • 2015-06-19
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 2013-04-04
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      相关资源
      最近更新 更多