Colaboratory入门玩

打开官网,跟着指引来一遍

  • 基于Jupyter Notebook,托管于Google,使用起来大同小异,熟悉Jupyter的话,也是很方便的。
  • 代码和注释并存
  • image-20200810101129196
  • 直接可视化显示
  • image-20200810101210851
  • 其他很多特性,比如还能再cell处评论,很方便
  • 可以本地导入项目,也能Google Drive对接存储。

image-20200810101415115

image-20200810101513478

配置不错,对于深度学习机器学习提供了很大帮助。

其他更多在官方教程

ssh连接

尽管来说,Jupyter很方便,但是对于某些不可描述操作,还是终端内好用。所以就想办法通过ssh连接到它后端。利用到了ngrok来内网穿透。

脚本找了两个版本,用其中任意一个都可以。

image-20200810102213746

前置准备

Sign up for ngrok

Version 1

  1. 复制代码到Colab任意创建一个新cell中

    • ssh only

      1
      2
      3
      !pip install git+https://github.com/demotomohiro/remocolab.git
      import remocolab
      remocolab.setupSSHD()
    • ssh and vnc

      1
      2
      3
      !pip install git+https://github.com/demotomohiro/remocolab.git
      import remocolab
      remocolab.setupVNC()
  2. 点左侧运行

    • image-20200810103313123
  3. 把上边复制的authtoken粘到输入框

    • 等待上边代码部署到输入框时候,粘贴token,回车
    • image-20200810103458678
    • 然后选区域,选最近差不多,我选新加坡image-20200810103619187
  4. 愉快登录ssh

    • 等待部署完成后,会显示用户名和密码,以及ssh登录命令,有手就行。
    • image-20200810103851755
    • image-20200810102213746

Version 2

步骤类似,粘贴脚本就行了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Install useful stuff
! apt install --yes ssh screen nano htop ranger git > /dev/null
# SSH setting
! echo "root:carbonara" | chpasswd
! echo "PasswordAuthentication yes" > /etc/ssh/sshd_config
! echo "PermitUserEnvironment yes" >> /etc/ssh/sshd_config
! echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
! service ssh restart > /dev/null
# Download ngrok
! wget -q -c -nc https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
! unzip -qq -n ngrok-stable-linux-amd64.zip
# Run ngrok
authtoken = "PUT_YOUR_TOKEN_HERE"
get_ipython().system_raw('./ngrok authtoken $authtoken && ./ngrok tcp 22 &')
! sleep 3
# Get the address for SSH
import requests
from re import sub
r = requests.get('http://localhost:4040/api/tunnels')
str_ssh = r.json()['tunnels'][0]['public_url']
str_ssh = sub("tcp://", "", str_ssh)
str_ssh = sub(":", " -p ", str_ssh)
str_ssh = "ssh root@" + str_ssh
print(str_ssh)
只需要把上边`authtoken`换成自己的,运行!
  • 等待部署完成,ssh登录命令

image-20200810104336106

默认密码为carbonara

及时更改密码

配置vscode

既然ssh连接了,各种服务也都能搭建了,这里搭建个vscode方便敲代码

  1. 挂载Google Drive
1
2
3
4
5
6
7
# Mount Google Drive and make some folders for vscode
from google.colab import drive
drive.mount('/googledrive')
! mkdir -p /googledrive/My\ Drive/colabdrive
! mkdir -p /googledrive/My\ Drive/colabdrive/root/.local/share/code-server
! ln -s /googledrive/My\ Drive/colabdrive /
! ln -s /googledrive/My\ Drive/colabdrive/root/.local/share/code-server /root/.local/share/

image-20200810104745488

点击链接验证授权

  1. 下载部署code-server
1
2
! curl -fsSL https://code-server.dev/install.sh | sh > /dev/null
! code-server --bind-addr 127.0.0.1:9999 --auth none &

image-20200810104901196

  1. 本地shell运行命令映射
1
ssh -L 9999:localhost:9999 root@0.tcp.ngrok.io -p 14407

其中9999端口为上边指定code-server端口,可以更换,但必须一致。

后边14407端口为ssh端口

  1. 愉快敲代码
  • 打开http://127.0.0.1:9999
  • image-20200810105129368

其他玩法

  • Aria2 离线下载
  • Youtube-dl 转存
  • Rclone
  • gd-utils
  • etc…

更多自己探索发现

image-20200810100453017



Colab方便,但不要滥用。

免费版本一般12h,但更多取决于GPU使用度

学习,学习,学习!

image-20200810105410318