Centos 7安装深度学习环境

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. 安装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

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="410.104"
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://cn.download.nvidia.cn/tesla:

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驱动版本。

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

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 -n 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安装

在这里插入图片描述

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

可直接在https://download.csdn.net/download/weixin_43178406/12324511进行下载。

7. 后记

  源码安装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包进行安装,而不能通过源码进行安装,一旦出错就会造成服务器崩溃。

发布了178 篇原创文章 · 获赞 389 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/herosunly/article/details/104051863
今日推荐