在服务器(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命令
你也可以在win10电脑上下载好安装包,使用ssh上传到服务器。
安装完成后,在linux命令行输入
同时测试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后面我们需要输入相同的密码)
将密钥保存下来,这里我的是
将该密钥记下来,放在上文的
右边的引号中间。
3.测试是否配置完成
运行
1 | jupyter notebook |
结果如图
看图片中的最后一行,http://ubuntu-PowerEdge-T640:8888/
这里我的服务器是用了它自己的名字,你需要在命令行中输入
记下inet中的ip地址,这就是你的ip地址。
最后在任意设备的浏览器上输入ip:端口,并且输入你刚刚两次输入的密码,在
比如这样 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)
- csGNN对应GNN环境
- 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。