前言
实验室电脑需要连接到Linux集群,记录下整个过程以及遇到的问题,环境为Anaconda3+pytorch1.7 +jupyter可视化界面 配置时间2020/12
文章目录
一、Anaconda
0.文件准备
到Anaconda官网或者清华镜像站按需求下载对应版本
Linux版本以.sh结尾
1.上传Anaconda到集群
以后上传文件也是同样的方式
1.1.方法一
在本地磁盘打开目标文件所在的文件夹,启动cmd(在文件夹的导航条中直接输入cmd后按回车即可),或者在cmd中cd到目标文件所在的文件夹。
进入集群环境
> ssh starduct@127.0.0.1
# ssh 登录方式
# starduct 集群账号
# @127.0.0.1 集群IP
传输文件
> scp anaconda3-2020.11-Linux-x86_64.sh starduct@pc01:~/Downlooads
# scp命令用于上传文件
# Anaconda3-2020.11-Linux-x86_64.sh 要上传的文件名称
# starduct@pc01 你的集群账号文件夹名称
# :~/Downlooads 上传路径,这里是我的账号文件夹根目录下的Downloads文件夹
1.2.方法二
下载xftp。如果是非商业目的使用可以选择免费的版本。在网页最下方可以找到家庭/学校免费的选项,按流程下载即可。
2.给Anaconda安装权限
注意这里如果将Anaconda存放在了非根目录的文件夹下需要先cd到该文件夹内后执行以下步骤
> chmod +x anaconda3-2020.11-Linux-x86_64.sh
3.安装Anaconda
> ./anaconda3-2020.11-Linux-x86_64.sh
# 执行安装
> source ~/.bashrc
> # 安装完成后刷新用户bashrc
4.更改为清华源
注意如果之前cd到了其它文件夹现在要返回到集群的根目录下
再执行后续操作
首先安装vim
> conda install vim
完成安装后,进入conda的路径设置
> touch ~/.condarc
> vim ~/.condarc
# 通过vim打开配置文件
vim依据左下角的显示内容分为三个模式:
- insert模式下可以对内容进行编辑
- 编辑完成后按我esc可以进入命令模式,命令模式下常用按键有:
i | 返回输入模式 |
---|---|
: | 切换到底线命令模式 |
- 底线命令模式,在最低端一行输入命令后回车执行,可以按esc返回命令模式
q | 退出程序 |
---|---|
w | 保存文件 |
wq | 退出并保存 |
将以下内容粘贴到配置文件内 换源之后报URL错误,可以试试把https改成http!!!
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
清除Anaconda索引缓存:
> conda clean -i
pip 换源
> pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
二、pytorch
0. 命令准备
到pytorch官网找到下载链接,需要哪里点哪里,注意选择使用conda下载
1.利用conda建立虚拟环境
如果想直接安装在原本的base环境的可以跳到第二步
> conda create -n env_name python=X.X
# env_name 输入你的虚拟环境名称
# python=X.X 输入你想要的环境中Python的版本
激活/切换虚拟环境
> conda activate env_name
在(env_name)出现在cmd最左侧,你的集群账号文件夹名字前面时表示成功进入虚拟环境。
conda update conda:检查更新当前conda
conda虚拟环境常用代码
查看当前存在的虚拟环境 | conda env list 或 conda info -e |
---|---|
进入/切换虚拟环境 | conda activate env_name |
删除虚拟环境 | conda remove -n env_name --all |
退出虚拟环境 | conda activate |
安装Python包 | conda install package_name |
查看已安装包 | conda list |
卸载Python包 | conda uninstall package_name |
打包虚拟环境到配置文件 | conda env export > xxxx.yaml |
导入虚拟环境配置文件 | conda env update -f=xxxx/xxxx/xxxx.yaml[虚拟环境配置文件所在的目录] |
在conda定义的虚拟环境内使用jupyter notebook
> activate env_name
> # 首先进入到虚拟环境中
> pip install ipykernel
> # 安装依赖包
> python -m ipykernel install --user --name env_name --display-name "env_show_name"
> # env_name 虚拟环境的名称
> # env_show_name 你想要在jupyter内显示的,虚拟环境名字
jupyter 管理虚拟环境 | 注意在base环境下操作 |
---|---|
查看虚拟环境列表 | jupyter kernelspec list |
删除虚拟环境 | jupyter kernelspec remove env_show_name |
2.安装pytorch
输入第0步在pytorch网站复制下来的安装命令
> conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
三、配置Jupyter可视化
0.提前准备
准备操作均在集群账号根目录文件夹下完成
> ps -aux | grep ssh | grep gpu
# GPU情况列表,看看就行,最好找一个没什么人用的
# 顺便再找一个没被占用的端口
> conda install ipython
> conda install jupyter notebook
# 正常情况下Anaconda会自带以上两个,如果没有再自己装
1.生成config
在集群账号根目录文件夹下
> jupyter lab --generate-config
2.生成密码
> ipython
# 进入ipython环境
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
在输入两次密码之后,系统会输出加密后的秘钥,类似下面这个,找个小本本把这串秘钥复制下来,第3步会用到:
Out[2]: 'sha1:xxxx'
最近加密方法改了,但操作流程完全一致
Out[2]: 'argon2:xxxx'
保存完成后输入exit
退出ipython
3.修改config
还是在集群账户根目录文件夹下
> vim ~/.jupyter/jupyter_notebook_config.py
# 加⼊以下配置信息
# 注意 password 那⼀样需要替换为上⼀节⽣成的密码
c.NotebookApp.allow_remote_access = True
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'argon2:xxxx'
c.NotebookApp.port = 8890
4.在后台运行jupyter
> ssh gpu001
# 进入第0步物色好的GPU
> nvidia-smi
# 确认一下GPU有没有被使用
# NVIDIA,YES
> jupyter notebook &
# 让jupyter notebook在后台启动
# 注意这里一定不要停止jupyter的进程
# 并且退出时使用exit退出,而不是通过ssh命令
> exit
# 如果想要查看jupyter的运行情况,可以在exit之前
> cat ~/nohup.out |grep gpu
# 检查jupyter notebook实际占用的端口号,记下来,第5步要用
*密码修改
首先关闭后台运行的jupyter,然后按上面2-4流程重新操作一遍就可以完成密码修改。
特别注意: 如果在第3步中,~/.jupyter/jupyter_notebook_config.json 存在这个文件,由于这个.json文件的优先级比路径同名的.py文件高,修改密码时需要在.json文件中修改才能生效,或者直接删掉.json文件
kill -9 jupyter的进程号
# 如果不知道jupyter的进程号
ps -aux | grep jupyter
# 使用以上命令可以找到jupyter的进程
5.端口映射
> ssh pc01
# 退出GPU,返回CPU模式,如果不在根目录的再cd回去
> ssh -C -g -f -N -L [your_port]:gpu001:8848 gpu001
# [your_port] 输入一个没被占用的集群端口,在第0步找的,例如2233
# gpu001:8848 第四步jupyter占用的端口号
6.登录
用浏览器访问 集群IP地址:端口号
例如: 127.0.0.1:2233