请忽略我的标题

如果你不能KX上网,那么读到这就够了,当然你也可以收藏,以便以后用得上

如果你能自由的上网,那么请继续往下阅读

G**gle Colab 是什么

简单来说,Ggle Colab 是一款网盘 + 在线 Jupyter Notebook,可以和本地的 Python Notebook 相媲美的 Python 开发器,有 15G 的网盘容量,更重要的是, Colab 可以使用免费 12 小时的 GPU 算力(Tesla K80 配置)**

Jupyter Notebook 的开发界面如下:

image.png

如何使用

image.png

  • 搜索 Colab,如下,首次使用会有一个关联操作,点击即可

image.png

  • 使用的时候,再次点击网盘的新建,就会出现以下红框中的应用,点击即可创建在线 Notebook

image.png

  • 使用 GPU

image.png

  • 在 Notebook 中使用 Linux 命令

只需在 Linux 命令的前面加一个 ! 即可

image.png

进阶

虽然 Colab 提供 GPU 算力,但是有一个特别坑的地方就是经常掉线,而且网络特别不稳定。

我们一般是用 GPU 算力来训练模型的,所以要是能把 Colab 变成一个终端就更香了

以下,我们就把 Colab 通过 ngrok 代理,将 Colab 变成一台远程服务器

ngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网。

  • 打开下面这一个网站
  1. https://colab.research.google.com/github/imadelh/comments/blob/master/CUDA_GPU-server.ipynb
  • 按照代码一步一步运行

中间可能会出现一些授权操作,比如授权你的网盘,这样你可以使用网盘来存储训练数据(15G) 基本够用

下面红框中是随机生成的密码,待会会用到
image.png

  • 授权 ngrok

运行到以下程序部分时,会有一个跳转连接,点击它会跳转到 ngrok 的网站,首次使用可能需要注册,但是我们使用 G**gle 账号进行登录。

生成授权码,直接复制就行了

image.png

将授权码输入到输入框,点击回车就行了

image.png

  • 用终端登录 Colab

待上面运行结束以后,会出现一个链接

image.png

点击以后,会跳转到这个界面,记住下面这个端口号

image.png

  • Xshell 登录

考虑到 FW 的存在,我使用的是远程服务器(Ubuntu系统)进行登录

  1. # 登录 port 就是上面那个端口号
  2. ssh root@0.tcp.ngrok.io -p [port]

第一次登录要你输一个 yes ,输入以后,复制上面生成的密码,复制到终端回车就行了(在终端是不会显示输入的密码的)

出现最下面的那个红框中相似的内容就证明成功了

image.png

  • 查看 GPU 详情
    1. # 查看 GPU 配置
    2. export LD_PRELOAD=/usr/lib64-nvidia/libnvidia-ml.so # 运行一次这个就行了
    3. nvidia-smi

image.png

  • 使用网盘数据

上面有一步是授权网盘的,网盘的数据的路径如下:

  1. cd content/gdrive/My\ Drive/

image.png

总结

通过上面的一顿操作,我们就拥有了一台属于自己的 GPU 服务器,不过,虽然可以免费使用 GPU,但是时长掉线的问题依然存在,掉线就需要重连,再次运行 ssh root@0.tcp.ngrok.io -p [port] 输入密码即可,还有一种情况是,长时间没有操作,服务器就会挂掉,这时,就算你再运行 ssh root@0.tcp.ngrok.io -p [port]
也是没用的,这时只能再根据上面的操作运行一遍。

image.png

不过,如果你训练模型的话,终端会一直刷新,这样服务器就不会断掉。同时,你训练模型的话需要一定时间保存一次模型,以防万一。

image.png

希望你能用得愉快~

参考:https://imadelhanafi.com/posts/google_colal_server/