繁体   English   中英

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

[英]Can I run a Google Colab (free edition) script and then shutdown my computer?

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

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

编辑:关闭浏览器后,一个 Colabs 实例最多可以运行 12小时在您的运行时被视为空闲并被回收之前 90 分钟。

同时,定期保存模型权重以避免丢失工作是一种很好的做法。


细节:

没有关于“空闲”和“最长寿命”持续时间的官方参考,但Korakot Chaovavanich 进行的测试表明:

  • 正在运行的笔记本的“最长寿命”12 小时(浏览器打开)
  • “空闲”笔记本实例在90 分钟后切断
  • 您最多可以同时运行2 个笔记本
  • 如果您在实例仍在运行时关闭笔记本窗口并打开它,则单元格输出和变量仍将保留。 但是,如果笔记本实例已被回收,您的单元格输出和变量将不再可用。

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


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

但是,如果您希望一次训练模型超过 12 小时,您可以在本地实例或标准 Jupyter Notebook上运行 Google Colaboratory 但是您会放弃 Colaboratory 提供的免费 G​​PU/TPU。 (检查点在这里仍然是一个好主意!)


Google Colaboratory 常见问题解答中的相关问题:

我的代码在哪里执行? 如果我关闭浏览器窗口,我的执行状态会发生什么变化?

代码在专用于您的帐户的虚拟机中执行。 虚拟机在闲置一段时间后会被回收,并具有系统强制执行的最长生命周期。

我可以如何使用 GPU,为什么它们有时不可用?

Colaboratory 旨在用于交互式使用。 可能会停止长时间运行的后台计算,尤其是在 GPU 上。 请不要使用 Colaboratory 进行加密货币挖掘。 这样做不受支持,并且可能会导致服务不可用。 我们鼓励希望通过 Colaboratory 的 UI 运行连续或长时间运行计算的用户使用本地运行时。

打开您的浏览器控制台并复制并粘贴下面的代码,这将避免您因闲置而被踢出局。

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

附言。 无论如何,您都会在 12 小时后被踢,因此请确保将进度保存到 Google 云端硬盘。

壳环

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

ssh 恩格罗克

在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 !echo "root:new password" | chpasswd和从 python 变量通过: password =password='new password' ,你必须匹配 linux password 和 var python password ,看看上面的这个ligne:

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

在 python 中使用多进程创建另一个函数并在那里启动 while 循环! 那个while循环不会让它睡觉!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM