Centos 7安装深度学习环境

  最新完整教程见链接:https://blog.csdn.net/herosunly/article/details/111170479

0. 卸载环境

1、卸载显卡驱动的命令:
  假如安装的是NVIDIA-Linux-x86_64-390.116.run:
则运行如下命令:sh NVIDIA-Linux-x86_64-390.116.run --uninstall

2、卸载cuda和cudnn

cd /usr/local/cuda-9.2/bin/
./uninstall_cuda_9.2.pl
rm -rf /usr/local/cuda-9.2/
rm -rf /usr/local/cuda/include/cudnn.h
rm -rf /usr/local/cuda/lib64/libcudnn*

卸载完后需要reboot。

1. 安装Python环境

1.1 安装Anaconda

  可在清华软件镜像站下载Anaconda的安装程序,如Anaconda3-5.2.0-Linux-x86_64.sh,下载链接则为https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.sh,需要注意的是Anaconda3-5.2.0对应的Python版本是3.6.4.

  安装以后需要在/etc/profile最后一行添加:

export PATH=$PATH:/home/anaconda3/bin

  然后再执行:

source /etc/profile

修改为清华软件镜像站:

pip install pip -U
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

1.2 创建虚拟环境

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

conda config --set show_channel_urls yes
conda create -n python3 python=3.6
conda install ipykernel
python -m ipykernel install --name python3

2. 脚本安装GPU驱动、CUDA、CUDNN

  可参考阿里云链接为,里面包括自动安装脚本:https://help.aliyun.com/document_detail/60149.html?spm=a2c4g.11186623.4.2.674d54534mTDID#section-bl2-k23-ygb(该脚本只适合在阿里云服务器上进行使用,别的环境无法正常使用

  需要注意的是,如果是在Windows复制自动安装脚本到Linux,需要把换行符\r\n修改为\n(可使用notepad++进行修改)。

#!/bin/sh

#Please input version to install
DRIVER_VERSION="418.67"
CUDA_VERSION="10.0.130"
CUDNN_VERSION="7.4.2"

INSTALL_DIR="/root/nvidia"
log=${INSTALL_DIR}/nvidia_install.log

#using .deb to install driver and cuda on ubuntu OS
#using .run to install driver and cuda on ubuntu OS
nvidia_script="nvidia_install.sh"
script_download_url=$(curl http://100.100.100.200/latest/meta-data/source-address | head -1)"/opsx/ecs/linux/binary/nvidia/script/${nvidia_script}"
echo $script_download_url

mkdir $INSTALL_DIR && cd $INSTALL_DIR
wget -t 10 --timeout=10 $script_download_url && sh ${INSTALL_DIR}/${nvidia_script} $DRIVER_VERSION $CUDA_VERSION $CUDNN_VERSION

3. 安装GPU驱动

在这里插入图片描述
如果是更早版本,可以在阿里云进行下载,命令为

wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/nvidia/driver/NVIDIA-Linux-x86_64-390.116.run
sh NVIDIA-Linux-x86_64-390.116.run

如果是比较新的版本,需要去官网查询下载https://www.nvidia.cn/Download/index.aspx?lang=cn:

wget http://cn.download.nvidia.com/tesla/396.82/NVIDIA-Linux-x86_64-396.82.run
sh NVIDIA-Linux-x86_64-396.82.run

使用nvidia-smi查看驱动是否安装成功。也可使用cat /proc/driver/nvidia/version来查看GPU驱动版本。

需要注意的是catboost只支持418(如418.67)以上的驱动。驱动安装也可以参考https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-centos-7-linux 。

4. 安装cuda和cudnn

由于最终安装的是pytorch-1.4.0-py3.6_cuda9.2.148_cudnn7.6.3_0.tar.bz2(https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/py3.6_cuda9.2.148_cudnn7.6.3_0.tar.bz2)

wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/nvidia/cuda/9.2.148/cuda_9.2.148.1_linux cuda_9.2.148_396.37_linux                        
wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/nvidia/cuda/9.2.148/cuda_9.2.148.1_linux
wget https://developer.download.nvidia.com/compute/machine-learning/cudn /secure/7.6.3.30/Production/9.2_20190822/cudnn-9.2-linux-x64-v7.6.3.30.tgz?vcg3oGnO2NK5a53HqN1zGD14tDO3RkB0jFuHdq6lAsg_7rX-sM-CAi6OW2_bV7tbCpNprKdqRmW8gtsd3ERtCytItX4p6G-WjxkSYOpEkeiVxxpBe9HCijmQSNkOrcQ7NhbXbyo3udR1CKbihWzNKFgn4k7WMvYq86cJVGVWiErtg-1kX_q5UqW5kiL8Pm9TDVwT1qG010_lSt_2Lv-L9nH_vZBWMy0 -O cudnn.tgz

其中cuda_9.2.148_396.37_linux为cuda文件,cuda_9.2.148.1_linux为cuda补丁,cudnn-9.2-linux-x64-v7.5.0.tgz为cudnn文件。

sh cuda_9.2.148_396.37_linux
sh cuda_9.2.148.1_linux
tar -zxvf cudnn.tgz
cp cuda/include/cudnn.h /usr/local/cuda/include
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

使用nvcc --version查看cuda版本
使用cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

更新:由于要兼容TF 1.14.0和2.0.0,所以安装CUDA版本为10.0(cuda_10.0.130.1_linux.run),CUDNN版本为7.4。

cuda安装地址为https://developer.nvidia.com/cuda-toolkit-archive,cudnn安装地址为https://developer.nvidia.com/rdp/cudnn-archive。

5. 安装Pytorch

5.1 conda安装

conda install pytorch torchvision cudatoolkit=9.2 -c pytorch

如果安装比较慢,可以设成清华镜像,或者直接下载pytorch压缩包,conda install安装,具体命令为:

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/pytorch-1.4.0-py3.6_cuda9.2.148_cudnn7.6.3_0.tar.bz2
conda install --offline pytorch-1.4.0-py3.6_cuda9.2.148_cudnn7.6.3_0.tar.bz2

实验代码,如果不出错,说明安装成功。

# Code in file tensor/two_layer_net_tensor.py
import torch
device = torch.device('cuda') # Uncomment this to run on GPU

# N is batch size; D_in is input dimension;
# H is hidden dimension; D_out is output dimension.
N, D_in, H, D_out = 64, 1000, 100, 10

# Create random input and output data
x = torch.randn(N, D_in, device=device)

5.2 pip安装

  https://pytorch.org/get-started/previous-versions/
在这里插入图片描述
如cuda10.0,链接为https://download.pytorch.org/whl/cu100/torch_stable.html,如最新的Pytorch1.4版本,下载地址为https://download.pytorch.org/whl/cu100/torch-1.4.0%2Bcu100-cp36-cp36m-linux_x86_64.whl(其中%2B在URL编码中对应的是+)。

6. Tensorflow安装

https://www.tensorflow.org/install/source#linux
在这里插入图片描述

6.1 pip安装

  假如安装的是tensorflow1.14.0版本,则安装命令为pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.14.0 ,需要注意的是安装Tensorflow之前需要安装gcc、g++,可参考链接为https://blog.csdn.net/herosunly/article/details/105507467。并且升级pip才可以正常安装(参考安装Anaconda中的升级pip内容)。

6.2 源码安装(https://www.tensorflow.org/install/source)

根据调研tensorflow无法直接支持cuda9.2版本,所以只能通过编译安装。
1、安装gcc、g++

yum -y install gcc gcc-c++ kernel-devel

2、安装bazel,bazel版本不能过高也不能过低,否则无法进行编译安装:bazel-0.24.1-installer-linux-x86_64.sh

wget https://github-production-release-asset-2e65be.s3.amazonaws.com/20773773/18fabc80-5579-11e9-9468-5857fbbd3b71?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200121%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200121T020118Z&X-Amz-Expires=300&X-Amz-Signature=50e3209d7e6c6d05da41c8a2f565b73db9c7f1fc7987a15ce1f554633bf75480&X-Amz-SignedHeaders=host&actor_id=24822076&response-content-disposition=attachment%3B%20filename%3Dbazel-0.24.1-installer-linux-x86_64.sh&response-content-type=application%2Foctet-stream

3、下载tensorflow1.14.0源代码,https://codeload.github.com/tensorflow/tensorflow/tar.gz/v1.14.0

./configure
Please specify the location of python. #这项必须根据实际情况进行指定
Do you wish to build TensorFlow with XLA JIT support? [Y/n]: y
Do you wish to build TensorFlow with CUDA support? [y/N]: y
其余都选n

编译

bazel build --config=opt --config=cuda --config=monolithic //tensorflow/tools/pip_package:build_pip_package

如果中间某个文件(如llvm)下载过慢导致中断,则先下载好然后放到指定的位置,如

cp llvm-558b52b517b8c989dc2d7fffb5c580fa45aece34.tar.gz /root/.cache/bazel/_bazel_root/ab9dfbfebdc170000040af29464d6f2f/external/llvm/558b52b517b8c989dc2d7fffb5c580fa45aece34.tar.gz

执行

bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

在/tmp/tensorflow_pkg目录下安装tensorflow

pip3 install tensorflow-1.14.0-cp36-cp36m-linux_x86_64.whl

遇到的ERROR: Cannot uninstall ‘wrapt’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

办法1:输入 pip3 install -U --ignore-installed wrapt enum34 simplejson netaddr

tensorflow安装可参考链接为:https://kknews.cc/code/agrvzp6.html

在这里插入图片描述
网上查阅资料以后,发现是numpy版本过高的问题,安装1.16.0版本即可:pip3 install numpy==1.16.0
在这里插入图片描述

pip3 install h5py==2.8.0rc1

  使用tf.test.is_gpu_available()来测试是否能够正确运行tensorflow-gpu版本。可直接在https://download.csdn.net/download/weixin_43178406/12324511进行下载。

7. 升级库和源码编译TF的坑

  conda update真的是坑。它会把Python升级到最新版本,尤其是在base environment情况下,就会导致oncda命令也会失效,从而使得无法进行环境回滚。所以我们要升级库,最好使用类似pip tensorflow-gpu==2.0.0(指定版本号)的命令。

  源码安装Tensorflow也是个大坑。第一次成功了,后来再安装就各种bug出现了。简要说一下出现的问题吧:

  安装过程中发现C语言数学库有问题:

#include <stdio.h>
#include <math.h>

int main ()
{

   printf("%lf sqrt is %lf\n", 4.0, sqrt(4.0) );
   printf("%lf sqrt is %lf\n", 5.0, sqrt(5.0) );
   
   return(0);
}
gcc test.c -lm
./a.out

  然后就自己在别的文件夹源码编译安装了glibc,替换了libm文件,然后就导致了服务器崩溃。因此glibc只能使用rpm包进行安装,而不能通过源码进行安装,一旦出错就会造成服务器崩溃。

8. Centos 7 GNOME安装

  安装前需要init 3结束X server。如果出现The driver installation is unable to locate the kernel source,请按照下列方式进行操作:

yum install epel-release
yum install --enablerepo=epel dkms
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

herosunly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值