Manjaro 深度学习环境配置
Manjaro 安装
实验室 Linux Server 安装深度学习环境记录
默认全部安装到 SATA 移动硬盘,没有分区,因为 500G 的空间装系统足够,还有一块 2 T 硬盘用来存储数据。
更改 pacman 国内源
sudo pacman-mirrors -c China -m rank
选择一块延迟最低或者更新时间最新的,也可以全选
刷新缓存
sudo pacman -Syy
ArchlinuxCN 源
修改 /etc/pacman.conf
sudo nano /etc/pacman.conf
在最后加入
[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
同步
sudo pacman -Syy
导入 GPU key
sudo pacman -S archlinuxcn-keyring
ZSH 终端
安装 zsh
sudo pacman -S zsh
配置 oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
更换默认的 shell
为 zsh
chsh -s /bin/zsh
重启,就可以愉快的使用 zsh
了
reboot
自动补全插件 zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
语法高亮插件 zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
安装 powerline
字体
pacman -S powerline
pacman -S powerline-fonts
pacman -S powerline-vim
修改 .zshrc
如下
ZSH_THEME = "agnoster" # 主题
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
)
使 .zshrc
生效
source ~/.zshrc
显卡驱动
开始菜单 > 设置 > 所有设置 > Manjaro-Settings Manager 选择最新的闭源驱动。
如果驱动没有正确安装,可以用以下命令来安装:
sudo mhwd -a pci nonfree 0300
安装 CUDA 和 cuDNN
sudo pacman -S cuda cudnn
测试 CUDA 是否安装成功,cd 到 opt/cuda/ssamples
目录下
cd 1_Utilities/deviceQuery
sudo make
./deviceQuery # 返回 pass,则通过
查看 CUDA 版本,默认安装的是最新版的 cuda
nvcc -V # 当前安装的 cuda 版本为 10.2
ssh 远程连接
服务机
先更新系统,再安装 openssh
,否则安装完可能无法启动
sudo pacman -Syu
sudo pacman -S openssh
启动/开机自启/重启服务
systemctl start sshd.service
systemctl enable sshd.service
systemctl restart sshd.service
终端机
ssh username@IP地址
Python 环境
安装 Anaconda
一键安装
sudo pacman -S anaconda
根据提示,激活 conda 环境,打开 ~/.zshrc
sudo nano ~/.zshrc
将以下代码添加到 .zshrc
最后一行
source /opt/anaconda/bin/activate root
使修改立即生效
source ~/.zshrc
修改 conda 源
打开 ~/.condarc
sudo nano ~/.condarc
修改文件内容如下
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- 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
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
运行 conda clean -i
清除索引缓存,保证用的是清华镜像站提供的索引
修改 pip 源
改用国内的pypi
源。执行该步骤前关闭conda
的虚拟环境,可在终端中执行conda deactivate
以退回到系统自带的Python环境。执行以下命令:
sudo pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
创建虚拟环境并安装 Pytorch
新建一个名为torch
的 Python 3.7
的环境
conda create -n torch python=3.7
激活该环境
conda activate torch
安装常用库
pip install numpy scripy matplotlib pylint
安装 Pytorch
pip install torch torchvision
打开 Python 交互模式,测试 Pytorch
是否安装成功
python
import torch
print(torch.__version__) # 1.5.1
print(torch.cuda.is_available())
结果返回 True
即可
创建虚拟环境并安装 TensorFlow
新建一个名为 tf22
的 Python
环境
conda create -n tf22
激活该环境
conda activate tf22
安装 tensorflow-gpu==2.2.0
conda install tensorflow-gpu==2.2.0
打开 Python 交互模式,测试 Tensorflow
是否安装成功
python
import tensorflow as tf
print(tf.__version__) # 2.2.0
print(tf.test.is_gpu_available())
结果返回 True
即可
Jupyter 多内核
想要在 jupyter notebook
或者 jupyter lab
中直接切换虚拟环境中的内核,而不是在多个虚拟环境中分别安装多个 jupyter lab
在前边新建的 tf22
虚拟环境中安装 jupyter kernel
conda install ipykernel
python -m ipykernel install --name tf22 --display-name "tf22" --user
上面命令中第一个 tf22
是虚拟环境的名称,第二个tf22
是你想在 jupyter
中展示的名称
在 torch
虚拟环境中同样运行上面两条命令
conda install ipykernel
python -m ipykernel install --name torch15 --display-name "torch15" --user
结果图如下,可以看到 jupyter lab
中已经有了三个不同的 kernel
Jupyter lab 远程访问
服务器端
生成配置文件
jupyter notebook --generate-config
设置密码并生成密钥
jupyter notebook password
Enter password: ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /Users/b504/.jupyter/jupyter_notebook_config.json
查看密钥
sudo cat /Users/b504/.jupyter/jupyter_notebook_config.json
修改配置文件
nano ~/.jupyter/jupyter_notebook_config.py
找到下面的代码行,分别修改为
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 # 可随便指定一个端口
c.NotebookApp.allow_remote_access = True
c.NotebookApp.notebook_dir = '/home/b504/桌面/data' # 修改默认文件路径为桌面上的 data 文件夹
在 base
环境中打开 jupyter lab
本地端
网页输入 http://b504-server:8888
其中 b504-server
为工作站的 ip
地址
后台运行
nohup
命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令
该命令可以在你 退出帐户/关闭终端 之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)
nohup jupyter lab > /dev/null 2>&1 &
命令解释:
/dev/null
,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),通常用于丢弃不需要的数据输出。
command >out.file
是将command
的输出重定向到out.file
文件,即输出内容不打印到屏幕上,而是输出到out.file
文件中。2>&1
是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file
文件,即将标准出错也输出到out.file
文件中。最后一个&
, 是让该命令在后台执行。
只要服务器不关机,jupyter lab
的服务会一直处于运行状态,局域网内打开ip:port
随时可以使用
pacman 使用说明
sudo pacman -S 软件名 # 安装
sudo pacman -R 软件名 # 删除单个软件包,保留其全部已经安装的依赖关系
sudo pacman -Rs 软件名 # 除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系
sudo pacman -Ss 软件名 # 查找软件
sudo pacman -Sc # 清空并且下载新数据
sudo pacman -Syu # 升级所有软件包
sudo pacman -Qs # 搜索已安装的包