在linux服务器配置jupyter notebook,并且配置不同的kernel和环境。

在服务器(Ubuntu20.04.4)下配置jupyter notebook 并安装机器学习常用的包

    • 做完所有步骤我能得到什么&我需要哪些设备
    • 步骤1:在服务器安装anaconda
    • 步骤2:配置jupyter notebook
    • 步骤3:创建不同的虚拟环境,并创造多个jupyter kernel以运行不同项目
    • 步骤4:为Kernel添加常用机器学习包
    • 大功告成,到这里,所有的工作都已经做完,愉快在服务器上跑代码吧!

做完所有步骤我能得到什么&我需要哪些设备

在本教程结束,你将能够在(内网)的任意设备打开指定ip和端口,通过jupyter-notebook在服务器远程运行您的机器学习(python)代码,保存您的数据。
需要的设备:一台linux服务器,一台能远程连接服务器的windows10电脑,用来操作服务器。如果您是在学校,或者公司,则需要这两台设备在同一个内网下。

步骤1:在服务器安装anaconda

在win10电脑下打开远程桌面连接,通过ip地址连接ubuntu服务器,在服务器安装Anaconda。网址:https://www.anaconda.com/products/individual点击download,找到individual版本,选择linux-64bit的进行下载。下载完了进入到下载目录下,使用linux命令sudo sh Anaconda3-2020.11-Linux-x86_64.sh安装,一路连按enter,最后需要输入yes。
你也可以在win10电脑上下载好安装包,使用ssh上传到服务器。
安装完成后,在linux命令行输入anaconda -h,如果返回usage:anaconda [-h]巴拉巴拉一大堆,就是成功安装了。
在这里插入图片描述

同时测试python ,在命令行输入python,将会返回python版本,我这里安装的是3.8.5版本的python:这样就是安装成功了

步骤2:配置jupyter notebook

1.安装jupyter notebook
linux终端中输入:

1
conda install jupyter

一般来说,anaconda3是默认安装jupyter的,这里是再确认一下
2.配置jupyter notebook

1.生成jupyter config文件,使用如下代码生成配置文件:

1
jupyter notebook -generate-config

执行以后会生成
./jupyter/jupyter_notebook_config.py文件,使用vim编辑器打开该文件,在文件末尾加入下面四行

1
2
3
4
5
c.NotebookApp.ip = '*'     # 指定哪些ip可以访问该笔记本,由于我们需要任意设备可以访问,在这里设置成*就可以了
c.NotebookApp.open_browser = False    # 默认不自动打开浏览器
c.NotebookApp.password = ''         # 输入刚刚生成的密钥,先别急着做,下一步会讲密钥如何生成
c.NotebookApp.port = 8888           # 设置端口, 建议使用默认的端口,就是8888,当然,使用任何其他端口应该都是可以的
c.NotebookApp.notebook_dir = ''     # 设置Jupyternotebook 打开的根目录,这是linux服务器上的一个目录,可以不设置,那么会在你的根目录下运行

2.生成密钥
在linux命令行窗口依次执行:

1
2
3
python
from notebook.auth import passwd
passwd()

这里你可以输入任意密码,它会返回一个如下图所示的密钥
在这里插入图片描述
(在enter password和verify password后面我们需要输入相同的密码)
将密钥保存下来,这里我的是argon2:$argon2id$v=19$m=10240,t=10,p=8$fiZzKOmVtA+H4LzwCaCA。。。。,我没截完整。
将该密钥记下来,放在上文的c.NotebookApp.password = ''
右边的引号中间。

3.测试是否配置完成
运行

1
jupyter notebook

结果如图
在这里插入图片描述
看图片中的最后一行,http://ubuntu-PowerEdge-T640:8888/
这里我的服务器是用了它自己的名字,你需要在命令行中输入ifconfig得到服务器的实际ip地址,像这样:
这里的inte就是你的ip地址
记下inet中的ip地址,这就是你的ip地址。
最后在任意设备的浏览器上输入ip:端口,并且输入你刚刚两次输入的密码,在enter password那一步。就可以连接上服务器了。
比如这样 192.168.107.101:8888
jupyter界面如下
在这里插入图片描述
你需要一直保证你的linux服务器终端没有关闭。否则会无法连接。

步骤3:创建不同的虚拟环境,并创造多个jupyter kernel以运行不同项目

这里需要提醒一下,环境environment和kernel并不是完全相同的概念,只有我们把对应的环境和kernel链接上,才能在jupyter-notebook中切换kernel以切换我们需要的环境
1.创建一个虚拟环境,使用:

1
conda create -n xxx python=3.8

xxx为你为虚拟环境命的名
创建环境时,会配置一些基础的包,这时一路yes就完事了,安装完成后,使用:

1
conda env list

查看是否创建成功。
在这里插入图片描述
这里我创建了一个名为GNN的虚拟环境,而base环境是自带的。后面是它们的路径
2.用conda 安装 nb_conda以及ipykernel

1
2
conda install ipykernel
conda install nb_conda

进入GNN环境,并为其安装ipykernel:

1
2
conda activate GNN
conda install ipykernel

同样在GNN的环境下,创建名为csGNN的kernel。这里就可以看出我们的kernel和环境不是一一对应的。顺便提一下,一般把kernel和环境命名为相同的名字。

1
python -m ipykernel install --name csGNN --user

做完这一步就能用:

1
jupyter kernelspec list

查看你现在拥有的kernel了,我这里有三个。
在这里插入图片描述
由于我们的操作顺序,我们的kernel和环境env是一一对应的。(请忽略nlpgnn那个kernel)

  1. csGNN对应GNN环境
  2. python3对应base环境

试试再次输入jupyter notebook,这时点击右侧的新建就会出现我们的kernel。
在这里插入图片描述
当我们需要为CS-GNN kernel添加常用机器学习包时,我们该怎么做呢?

步骤4:为Kernel添加常用机器学习包

假设我们需要给GNN环境也就是cs-GNN kernel安装pytorch,这里的问题在于conda安装pytorch很慢,而且目前(2020.12.8)清华源的conda已经下架了,如果使用conda安装,并且配置镜像源为清华时,会提示404,大概意思是找不到pytorch这个包之类的。这里我推荐大家进入GNN环境使用pip安装pytorch:

1
2
conda activate GNN
pip install torch torchvision -i http://mirrors.aliyun.com/pypi/simple/  --trusted-host mirrors.aliyun.com

之后在jupyter notebook中打开cs-GNN kernel,就可以使用如下代码可以查看是不是安装好了。

1
2
3
import torch
cuda = torch.cuda.is_available()
print(cuda)

在这里插入图片描述
返回True,就是成功安装了pytorch。

大功告成,到这里,所有的工作都已经做完,愉快在服务器上跑代码吧!