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

Can I run a Google Colab (free edition) script and then shut down my computer?

我可以运行一个google colab(免费版)脚本然后关闭我的电脑吗?

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

Edited: With the browser closed, a Colabs instance will run for at most 12 hours 90 minutes before your runtime is considered idle and is recycled.

同时,最好定期保存模型权重以避免丢失工作。


详情:

'Idle' 和 'Maximum Lifetime' 持续时间没有官方参考,但 表明:

  • 运行笔记本的'maximum lifetime'12小时(浏览器打开)
  • 'Idle' notebook 实例在 90 分钟
  • 后中断
  • 您最多可以同时拥有 2 个笔记本 运行
  • 如果您关闭笔记本 window 并在实例仍然 运行 时打开它,单元格输出和变量将仍然存在。但是,如果笔记本实例已被回收,您的单元格输出和变量将不再可用。

您可以尝试一种偷偷摸摸的解决方法,即在您的移动浏览器中打开 Colabs 实例,以防止该实例被视为“空闲”。


根据个人经验,您自己的里程数会有所不同,我有时会稍微缩短持续时间。但是只要你检查你的模型(定期保存训练权重),你应该能够在 VM 被回收之前完成大量的训练,之后你可以简单地将权重加载到新 VM 实例上的模型中并恢复训练。

但是,如果您想一次性训练您的模型超过 12 小时,您可以 run Google Colaboratory on a local instance 或标准的 Jupyter Notebook。但是您会放弃 Colaboratory 提供的免费 GPU/TPU。 (检查点在这里仍然是个好主意!)


来自Google Colaboratory FAQ的相关问题:

Where is my code executed? What happens to my execution state if I close the browser window?

Code is executed in a virtual machine dedicated to your account. Virtual machines are recycled when idle for a while, and have a maximum lifetime enforced by the system.

How may I use GPUs and why are they sometimes unavailable?

Colaboratory is intended for interactive use. Long-running background computations, particularly on GPUs, may be stopped. Please do not use Colaboratory for cryptocurrency mining. Doing so is unsupported and may result in service unavailability. We encourage users who wish to run continuous or long-running computations through Colaboratory’s UI to use a local runtime.

打开你的浏览器控制台,复制粘贴下面的代码,这样可以避免你因为闲着被踢掉。

function ClickConnect() {
console.log("Working"); 
document
  .querySelector('#top-toolbar > colab-connect-button')
  .shadowRoot.querySelector('#connect')
  .click() 
}
setInterval(ClickConnect, 60000)

Ps。无论如何,您都会在 12 小时后被踢出,因此请确保将您的进度保存到您的 Google 驱动器。

Shell循环

对我来说,我选择通过 ssh Ngrok 和 运行 命令 shell(循环)在后台
chroot 进入 VM while true;do sleep 300; done & 我在后台使用 &` 来 运行 这个命令 所以我可以退出 colab 网站并让 VM 工作 12 小时

ssh Ngrok

在 colab 中使用 ssh 的最佳方式,您必须在 ngrok.com 中登录一次并获取您的 OAuth 密钥并将此单元格添加到您的 colab notebook

#@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),为了更安全,您应该更改 linux root 用户的密码 !echo "root:new password" | chpasswd 和 python 变量: password =password='new password' ,你必须匹配 linux password 和 var python password ,看上面的这行:

print("No user found using username and password as 'root'")
    !echo "root:t"   | chpasswd
    username='root'
    password='root'

在 python 中使用多进程创建另一个函数并在那里开始 while 循环! while 循环不会让它休眠!