整理Ubuntu深度学习服务器初始化操作

前言

这两年总是换服务器,每次配置都挺麻烦的要搜一堆东西,干脆直接整理一下供自己以后参考。

版本说明

Ubuntu 20.04 桌面版

系统配置

配置SSH

安装ssh

sudo apt update
sudo apt install openssh-server

检查ssh状态

sudo systemctl status ssh
  • 如需使用VNC远程桌面可以参考这篇教程进行配置

开机自动挂载磁盘

Ubuntu 开机自动挂载硬盘 - CSDN

创建新用户

创建名为dl的用户并设置密码:

sudo useradd -m -s /bin/bash dl
sudo passwd dl

添加管理员权限:

sudo vim /etc/sudoers

添加该行:为dl添加管理员权限并且使用sudo不需要输入密码

dl      ALL=(ALL) NOPASSWD:ALL
  • 如果sudo还是需要密码,则有可能是被用户组设置覆盖了,为了防止这种问题的出现建议将该行插入到文件末尾。

安装screen

sudo apt install screen

修改screen基本设置

Conda环境配置

安装MiniConda

在MiniConda下载页找到对应版本的安装脚本下载链接,使用wget下载。

wget https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-x86_64.sh

执行安装

sh Miniconda3-py38_4.12.0-Linux-x86_64.sh
  • 建议安装到公用目录下/opt/miniconda3

初始化Conda

运行以下命令初始化Conda:

/opt/miniconda3/bin/conda init

初始化结果:

dl@server:~$ /opt/miniconda3/bin/conda init
no change     /opt/miniconda3/condabin/conda
no change     /opt/miniconda3/bin/conda
no change     /opt/miniconda3/bin/conda-env
no change     /opt/miniconda3/bin/activate
no change     /opt/miniconda3/bin/deactivate
no change     /opt/miniconda3/etc/profile.d/conda.sh
no change     /opt/miniconda3/etc/fish/conf.d/conda.fish
no change     /opt/miniconda3/shell/condabin/Conda.psm1
no change     /opt/miniconda3/shell/condabin/conda-hook.ps1
no change     /opt/miniconda3/lib/python3.8/site-packages/xontrib/conda.xsh
no change     /opt/miniconda3/etc/profile.d/conda.csh
modified      /home/dl/.bashrc

==> For changes to take effect, close and re-open your current shell. <==

可以发现初始化程序修改了~/.bashrc,添加了如下几行:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/opt/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/opt/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/opt/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

重启bash或输入source ~/.bashrc重载配置,按道理这时应该能看到(base)
运行conda -h检查是否安装成功。

创建python虚拟环境

/opt/miniconda3/envs下创建名为dl版本为python3.8虚拟环境。

conda create -p /opt/miniconda3/envs/dl python=3.8

直接运行一般会报错:

Preparing transaction: failed

CondaError: Unable to create prefix directory '/opt/miniconda3/envs/dl'.
Check that you have sufficient permissions.

因为/opt下的权限是这样的(通过ls -alh /opt/miniconda3/envs/查看),缺少w权限

drwxr-xr-x root root

添加其他用户组w权限

sudo chmod -R o+w /opt/miniconda3/envs/

再次运行环境安装命令,出现下述结果即安装成功:

(base) dl@server:~$ conda create -p /opt/miniconda3/envs/dl python=3.8
...
...
...
#
# To activate this environment, use
#
#     $ conda activate /opt/miniconda3/envs/dl
#
# To deactivate an active environment, use
#
#     $ conda deactivate

通过conda activate dl启动环境。

  • 为啥要装在/opt下呢?因为这样的话新用户只需要/opt/miniconda3/bin/conda init即可使用其他用户已安装的虚拟环境。

常用设置

为了避免每次使用都需要手动启动环境,将该命令其写入~/.bashrc,顺便也将一些常用的别名写进去。
~/.bashrc末尾添加:

# 自定义
conda activate dl
alias ll='ls -alFh'
alias smi='nvidia-smi'
alias py='python'

安装PyTorch

在pytorch官网选择所需的版本的conda安装命令:
整理Ubuntu深度学习服务器初始化操作_第1张图片

conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia

一个简单的python例子测试是否安装成功:

import torch
x = torch.zeros([2,3]).cuda()
print(x @ x.T)

安装其他必要的库

设置pip国内源

创建pip配置文件

mkdir ~/.pip
vim ~/.pip/pip.conf

写入中科大源(个人感觉速度最快)

[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple
[install]
trusted-host = https://pypi.mirrors.ustc.edu.cn

常用库

安装这几个,其他所需的库基本都根据依赖自动安装了。

pip install ipython
pip install scikit-learn
pip install matplotlib
pip install pyyaml

配置PyCharm远程调试

需要PyCharm专业版,社区版好像没这个功能。

配置远程Python解释器

进入设置 - Python解释器 - 显示所有 - 添加+,新建SSH解释器:
整理Ubuntu深度学习服务器初始化操作_第2张图片
配置SSH信息:
整理Ubuntu深度学习服务器初始化操作_第3张图片
配置文件映射:
整理Ubuntu深度学习服务器初始化操作_第4张图片

整理Ubuntu深度学习服务器初始化操作_第5张图片

其中SSH配置如下:
整理Ubuntu深度学习服务器初始化操作_第6张图片
配置Python解释器位置工程文件映射路径,如图所示:
整理Ubuntu深度学习服务器初始化操作_第7张图片

配置文件映射

配置完python解释器后在工具栏 - Tools - Deployment - Configuration 检查文件映射是否正常开启:
整理Ubuntu深度学习服务器初始化操作_第8张图片
将文件映射开启后,在左侧的文件窗口中选中项目根目录,然后点击工具栏 - Tools - Deployment - Upload 将代码上传到服务器。
整理Ubuntu深度学习服务器初始化操作_第9张图片
最后使用Pycharm随便运行一个文件,测试远程解释器是否能正确使用。

你可能感兴趣的:(Linux,ubuntu,服务器,深度学习)