请忽略我的标题
如果你不能KX上网,那么读到这就够了,当然你也可以收藏,以便以后用得上
如果你能自由的上网,那么请继续往下阅读
G**gle Colab 是什么
简单来说,Ggle Colab 是一款网盘 + 在线 Jupyter Notebook,可以和本地的 Python Notebook 相媲美的 Python 开发器,有 15G 的网盘容量,更重要的是, Colab 可以使用免费 12 小时的 GPU 算力(Tesla K80 配置)**
Jupyter Notebook 的开发界面如下:
如何使用
- 首先拥有一个 G**gle 账号,没有的话自行注册
- 其次,登录 https://drive.google.com/drive/my-drive 界面如下
- 点击新建 -> 更多 -> 关联更多应用
- 搜索 Colab,如下,首次使用会有一个关联操作,点击即可
- 使用的时候,再次点击网盘的新建,就会出现以下红框中的应用,点击即可创建在线 Notebook
- 使用 GPU
- 在 Notebook 中使用 Linux 命令
只需在 Linux 命令的前面加一个 !
即可
进阶
虽然 Colab 提供 GPU 算力,但是有一个特别坑的地方就是经常掉线,而且网络特别不稳定。
我们一般是用 GPU 算力来训练模型的,所以要是能把 Colab 变成一个终端就更香了
以下,我们就把 Colab 通过 ngrok 代理,将 Colab 变成一台远程服务器
ngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网。
- 打开下面这一个网站
https://colab.research.google.com/github/imadelh/comments/blob/master/CUDA_GPU-server.ipynb
- 按照代码一步一步运行
中间可能会出现一些授权操作,比如授权你的网盘,这样你可以使用网盘来存储训练数据(15G) 基本够用
下面红框中是随机生成的密码,待会会用到
- 授权 ngrok
运行到以下程序部分时,会有一个跳转连接,点击它会跳转到 ngrok 的网站,首次使用可能需要注册,但是我们使用 G**gle 账号进行登录。
生成授权码,直接复制就行了
将授权码输入到输入框,点击回车就行了
- 用终端登录 Colab
待上面运行结束以后,会出现一个链接
点击以后,会跳转到这个界面,记住下面这个端口号
- Xshell 登录
考虑到 FW 的存在,我使用的是远程服务器(Ubuntu系统)进行登录
# 登录 port 就是上面那个端口号
ssh root@0.tcp.ngrok.io -p [port]
第一次登录要你输一个 yes
,输入以后,复制上面生成的密码,复制到终端回车就行了(在终端是不会显示输入的密码的)
出现最下面的那个红框中相似的内容就证明成功了
- 查看 GPU 详情
# 查看 GPU 配置
export LD_PRELOAD=/usr/lib64-nvidia/libnvidia-ml.so # 运行一次这个就行了
nvidia-smi
- 使用网盘数据
上面有一步是授权网盘的,网盘的数据的路径如下:
cd content/gdrive/My\ Drive/
总结
通过上面的一顿操作,我们就拥有了一台属于自己的 GPU 服务器,不过,虽然可以免费使用 GPU,但是时长掉线的问题依然存在,掉线就需要重连,再次运行 ssh root@0.tcp.ngrok.io -p [port]
输入密码即可,还有一种情况是,长时间没有操作,服务器就会挂掉,这时,就算你再运行 ssh root@0.tcp.ngrok.io -p [port]
也是没用的,这时只能再根据上面的操作运行一遍。
不过,如果你训练模型的话,终端会一直刷新,这样服务器就不会断掉。同时,你训练模型的话需要一定时间保存一次模型,以防万一。
希望你能用得愉快~