ubuntu16.04+cuda8+cudnn7+anaconda3环境安装配置操作,用于搭建pytorch计算机视觉学习环境
CUDA8.0安装
- cuda8.0下载
- cuda8.0安装
- 修改权限
sudo chmod 777 cuda_8.0.61_375.26_linux.run
或者sudo chmod 777 cuda_8.0*
- 执行
sudo ./cuda_8.0.61_375.26_linux.run
(有补丁包的话,别忘了执行补丁包) - 一路回车到100%,输入’accept n y y n`
- 打开~/.bashrc文件:
sudo gedit ~/.bashrc
- 将以下内容写入到~/.bashrc尾部:
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- 使该配置生效:一定要执行啊 ,如果同时打开多个终端,执行过后,重新打开,否则后面的错误也是不断的.
source ~/.bashrc
- 在/etc/profile文件中添加CUDA环境变量:
sudo gedit /etc/profile
打开文档都在文档结尾加上下面两句:
1
2PATH=/usr/local/cuda/bin:$PATH
export PATH保存后, 执行下列命令, 使环境变量立即生效:
source /etc/profile
- 同时添加lib库路径,在
/etc/ld.so.conf.d/
新建文件cuda.conf
sudo gedit /etc/ld.so.conf.d/cuda.conf
- 在文中加入下面内容:
/usr/local/cuda/lib64
- 执行下列命令使之立刻生效:
sudo ldconfig
- 执行以下命令测试cuda是否安装成功
1
2
3
4
5cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery
cat /usr/local/cuda/version.txt
nvcc --version
cudnn7安装
- 下载文件
- 解压文件
tar -zxvf cudnn-8.0-linux-x64-v7.1.tgz
- 复制文件
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
- 复制文件
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
- 修改权限
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
- 验证安装成功
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
ubuntu16.04安装anaconda3
- 下载
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-4.3.1-Linux-x86_64.sh
(ps:在下载的时候一定要注意版本匹配,否则后面很容易出错。这个版本下载所带的python3.6,这些都影响着后面是否成功) cd Downloads
sudo ./Anaconda3-4.3.1-Linux-x86_64.sh
- 出现的是许可文件,按ENTER继续查看,到最后输入
yes
,同意许可文件 - 确认安装位置,直接enter,默认路径在/home/~/anaconda3 (然后就开始安装,这期间不要随便动键盘,不要随便敲ENTER,总之安装过程中不要动!)
- 等到安装结束后,会询问是否配置到环境变量中,输入
yes
,按ENTER的话默认为no,后面可能就需要自己手动添加到环境变量中,很麻烦 - 使生效:anaconda安装成功,关闭终端或者输入
source ~/.bashrc
- 测试
jupyter notebook
,如果出现jupyter,说明环境变量都配好了
conda相关操作
- conda版本
conda --version
- 更新
conda update conda
设置Anaconda 仓库的清华镜像
1
2
3conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes-
1
2
3conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# for legacy win-64
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/
管理环境
- 当您开始使用conda时,您已经拥有一个名为的默认环境 base
- 命名环境snowflakes并安装BioPython包
conda create --name snowflakes biopython
- 创建一个名为“snakes”的新环境,其中包含Python 3.5
conda create --name snakes python=3.5
- 激活环境
source activate snowflakes
- 查看所有环境列表
conda info --envs
(活动环境是带星号(*)的环境) - 回到默认环境
source deactivate
- 删除环境
conda remove -n py2.7 --all
- 克隆环境
conda create --name py35 --clone py27
- 生成镜像环境
conda env export --file pyfpn.yml
(先激活环境source activate torch
) - 加载镜像环境
conda env create --file pyfpn.yml
(只能是相同平台间的迁移) - conda批量导出
conda list -e > requirements.txt
- conda批量加载安装
conda install --yes --file requirements.txt
- pip批量导出
pip freeze > requirements.txt
- pip批量安
pip install -r requirements.txt
管理包
- 检查是否可以从Anaconda存储库(必须连接到Internet)获得名为“beautifulsoup4”的未安装的软件包
conda search beautifulsoup4
- 将此软件包安装到当前环境中
conda install beautifulsoup4
- 检查新安装的程序是否在此环境中
conda list
ssh服务
- 安装命令
sudo apt-get install openssh-server
- 卸载命令
sudo apt-get remove openssh-server
- 查看ssh服务状态
ps -e | grep ssh
- 开启服务
sudo /etc/init.d/ssh start
- 停止服务
sudo /etc/init.d/ssh stop
- 重启服务
sudo /etc/init.d/ssh restart
- 开启自启ssh服务
sudo nano /etc/rc.local
文件,在exit 0语句前加入/etc/init.d/ssh start
保存Ctrl+O
退出ctrl+x
pycharm 配置远端调试
- pycharm配置本地解释器,选择
~/conda/envs/py3.5/bin/python
Linux免密码登录
- 在本地电脑上输入
ssh-keygen -t rsa
,一直点击回车键 - 将生成的公钥复制到服务器中的指定位置
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.100
- 最后测试免密码登入`root@192.168.1.100`
scp服务器文件传输
- 上传本地文件到服务器
scp /home/yhc/Documents/code/kaggle_human_protein_baseline-master/main.py b6062@172.16.142.228:/home/b6062/WHUYHC/code/kaggle_human_protein_baseline/
scp /home/yhc/Documents/code/kaggle_human_protein_baseline-master/config.py b6062@172.16.142.228:/home/b6062/WHUYHC/code/kaggle_human_protein_baseline/
scp /home/yhc/Documents/code/kaggle_human_protein_baseline-master/models/model.py b6062@172.16.142.228:/home/b6062/WHUYHC/code/kaggle_human_protein_baseline/models/
- 上传目录到服务器
scp -r /home/yhc/Documents/code b6062@172.16.142.228:/home/b6062/WHUYHC/
- 从服务器上下载文件
scp b6062@172.16.142.228:/home/b6062/WHUYHC/code/kaggle_human_protein_baseline/submit/bninception_bcelog_bestloss_submission.csv /home/yhc/Documents/
- 从服务器上下载文件
scp b6062@172.16.142.228:/home/b6062/WHUYHC/code/kaggle_human_protein_baseline/main.py /home/yhc/Documents/code/kaggle_human_protein_baseline-master/
- 从服务器下载整个目录
scp -r b6062@172.16.142.228:/home/b6062/WHUYHC/ /home/yhc/Documents/code
scp b6062@172.16.142.228:/home/b6062/WHUYHC/code/kaggle_human_protein_baseline/main.py /home/yhc/Documents/code/kaggle_human_protein_baseline-master/
相关包安装
查看Linux系统版本信息
1
2
3
4
5
6
7
8cat /etc/*release*
cat /usr/local/cuda/version.txt
nvcc --version
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*安装pip
apt-get install python3-pip
- 升级pip
python -m pip install --upgrade pip
安装python3.6
1 | apt-get update |
卸载python2.7
1 | apt-get remove python2.7 |
设置系统默认python版本
1 | rm /user/bin/python |
配置清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
安装pytorch0.4.1
- 限定版本,试了好几个命令 只有这个速度很快
python -m pip install torch==0.4.1 torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install http://download.pytorch.org/whl/cu80/torch-0.4.1-cp36-cp36m-win_amd64.whl
conda install pytorch=0.4.1 cuda80 -c pytorch
- 测试代码
1
2
3
4python
import torch
torch.__version__
torch.cuda.is_available()
其余包
1 | conda install pandas |
pytorch 使用多GPU
- 1.设置多GPU运行:
- 在程序中指明参数
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"
或者 - 在/etc/profile或~/.bashrc的配置文件中配置环境变量(/etc/profile影响所有用户,~/.bashrc影响当前用户使用的bash shell) 在/etc/profile文件末尾添加以下行:
export CUDA_VISIBLE_DEVICES=0,1
##仅显卡设备0,1GPU可见。可用的GPU可通过nvidia-smi -L
命令查看。:wq
保存并退出,source /etc/profile
使配置文件生效
- 在程序中指明参数
2.在caffe中训练的时候如果使用多GPU则直接在运行程序的时候指定GPU的index即可,但是在Pytorch中则需要在声明模型之后,检查是不是有多个GPUs,如果是的话就要先用
nn.DataParallel
语句,如:1
2
3
4model = get_net()
if torch.cuda.device_count() > 1:
model = nn.DataParallel(model)
model.cuda()- 使用多个GPU的原理就是通过上面这句代码将model在每个GPU上分别保存一份,然后对model的输入tensor进行自动的分割,每个GPU计算tensor的一部分,这样就能实现计算量的平均分配。在每个model计算完成之后,DataParallel将这些结果进行收集和融合,之后再将结果返回。
1 | optimizer = optim.SGD(model.parameters(),lr = config.lr,momentum=0.9,weight_decay=1e-4) |
FAQ
-
- Linux系统下打开终端,敲入命令:
sudo gedit /etc/vim/vimrc.tiny
,按回车键,输入密码,再按回车键。 - 进入vimrc.tiny文件的编辑状态,修改倒数第二行
set compatible
,将其改为set nocompatible
。 - 在set nocompatible下面添加一行:
set backspace=2
。保存,退出编辑。再使用vi时,已经可以正常使用方向键和Backspace。
- Linux系统下打开终端,敲入命令:
ubuntu查看进程启动时间:
ps -eo pid,tty,user,comm,lstart,etime | grep python
不乱于心,不困于情。不畏将来,不念过往