Anaconda/notebook 远程服务器使用

需求分析

不知道读者们有没有发现,如果你用 Anaconda 中的 Notebook 的话,有时想快速调试几行程序,这时打开 Notebook 每次都得好一会,而且会占用了不少的本地资源,这时要是有一个远程的 Notebook,想用的时候随时打开,而且又不用考虑占用本地的计算资源,那该有多好。

工具:一台服务器(带 GPU 的更好,还可以进行远程训练)、Xshell 软件
PS:笔者之前购买了一台腾讯云的服务器,所以就用它来进行演示。

安装Anaconda

下载Anaconda安装包

浏览器打开 https://www.anaconda.com/distribution/#linux 选择 Linux 3.7 版本的软件包,复制链接地址,使用 wget 命令进行下载。(笔者服务器的系统是Ubuntu)

image.png

  1. wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh

这样就下载了一个 Anaconda3-2020.02-Linux-x86_64.sh 文件

SHA256验证

SHA256验证,主要是来验证所下载的软件包是否完整,防止文件内容被篡改,验证的方法是运行下面命令,会出现一串字符

  1. sha256sum Anaconda3-2020.02-Linux-x86_64.sh

image.png

然后到 https://docs.anaconda.com/anaconda/install/hashes/ 找到对应的版本,点击进去就会看见 sha256 码,一般是和你终端输出的字符串是一致的就说明下载的软件包没有问题。

image.png

安装

运行命令安装

  1. bash Anaconda3-2020.02-Linux-x86_64.sh

image.png

一直回车到底,到最后输入一个 yes 确认同意协议

image.png

安装位置确认 ,回车默认好啦

image.png

开始解压安装

image.png

出现 “Do you wish the installer to initialize Anaconda3 by running conda init?”,输入 yes 回车

image.png

安装成功

image.png

运行 source ~/.bashrc 生效

image.png

安装JupyterLab

JupyterLab 是 Jupyter Notebook 的下一代产品,集成了更多功能。如果你租过别人的远程服务器的话,那么你会发现,现在很多都是 JupyterLab 居多。所以,我们也使用 JupyterLab 来作为我们的开发界面

  1. # conda 安装
  2. conda install -c conda-forge jupyterlab
  3. # 或者 pip 安装
  4. pip install jupyterlab

image.png

等待安装即可。。

配置远程访问

既然要进行远程访问开发,那么就需要进行配置

生成验证字符

终端运行 ipython 并运行一下命令,设置密码即可,然后会生成一串字符,待会需要用到

  1. In [1]: from notebook.auth import passwd
  2. In [2]: passwd()
  3. Enter password:
  4. Verify password:
  5. Out[2]: 'sha1:2af47044eb4d:f7c917997d5a91bdeeb4a4a1cab7266b844c94bb'

image.png

生成配置文件

  1. jupyter lab --generate-config

image.png

修改配置

修改配置文件的几处地方(修改的时候记得将前面的 # 删除),笔者是下载到本地后修改后再上传到服务器的

  • 将ip设置为*,意味允许任何IP访问

image.png

  • 这里的密码就是上边我们生成的那一串

image.png

  • 服务器上并没有浏览器可以供Jupyter打开,所以设置成 False


    image.png

  • 监听端口设置为8888或其他自己喜欢的端口

image.png

  • 允许远程访问


    image.png

我们把工作空间设置在 /home/ubuntu/code 下面所以进入到该路径下运行 jupyter lab --allow-root 即可使用

image.png

为了让程序在后台运行,我们可以使用 tmux 工具(可以后台运行的工具)

  1. apt install tmux # 安装 tmux 工具
  2. tmux -S jupyterlab # 启动一个窗口,关闭后程序仍然可以在后台运行
  3. jupyter lab --allow-root # 运行我们所要的程序

关闭终端窗口,完成!!

在浏览器中输入 ip:8888 输入密码即可看到以下的窗口

1_Ksozb4RPKaPX9GQokhPF2w.gif

远程可视化

大家在训练深度学习模型的时候,往往需要对指标进行可视化,其中 Tensorboard 就是一款不错的工具,下面就给大家演示如何在本地显示远程服务器的可视化结果。

首先运行一个演示程序

  1. from torch.utils.tensorboard import SummaryWriter
  2. import numpy as np
  3. writer = SummaryWriter()
  4. for n_iter in range(100):
  5. writer.add_scalar('Loss/train', np.random.random(), n_iter)
  6. writer.add_scalar('Loss/test', np.random.random(), n_iter)
  7. writer.add_scalar('Accuracy/train', np.random.random(), n_iter)
  8. writer.add_scalar('Accuracy/test', np.random.random(), n_iter)

在 Xshell 进行以下设置

image.png

然后运行 tensorboard --logdir runs/

image.png

最后在本地的浏览器输入 http://localhost:6006/ 极客看到可视化效果了

image.png