TensorFlow机器学习开发环境搭建

版权声明:本文出自www.54manong.com,转载请注明原地址,谢谢! https://blog.csdn.net/xiaohuanglv/article/details/86686254

来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=1216

1 机器学习环境搭建

显卡信息:NVIDIA Corporation GK110BGL [Tesla K40c]

查看显卡信息:lspci | grep -I vga

image.png

nvidia-smi

显卡安装位置:

10.110.181.40 node16.sleap.com

10.110.181.41 node17.sleap.com

1.1 显卡驱动安装

系统自带显卡驱动

image.png

1.1.1 禁用默认驱动nouveau

l 方法一:

vim /boot/grub/grub.conf

添加 nouveau.modeset=0

表示开机将nouveau.modeset加入黑名单,这样就不用再各种blacklist中设置了。

image.png

l 方法二

vim /etc/modprobe.d/blacklist.conf

添加blacklist nouveau

l 确认已禁用:

lsmod | grep nouveau 无返回结果

1.1.2 安装NVIDIA驱动程序所需要的服务

sudo yum install gcc-c++

sudo yum install kernel-devel

sudo yum install kernel-headers

1.1.3 备份initramfs文件

sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

1.1.4 重建initramfs文件

sudo dracut -v /boot/initramfs-$(uname -r).img $(uname -r)

1.1.5 修改/etc/inittab,使系统开机进入init 3文本模式

image.png

id:5:initdefault: 表示系统启动时默认进入x-window图形界面

id:3:initdefault: 表示进入终端模式

1.1.6 重启

reboot 0

1.1.7 启动驱动程序安装

chmod +x NVIDIA-Linux-x86_64-384.145.run

./NVIDIA-Linux-x86_64-384.145.run

1.1.8 验证驱动是否安装成功

image.png

1.1.9 版本对应关系

tensorflow CUDA cuDNN版本对应关系:

https://blog.csdn.net/yuejisuo1948/article/details/81043962

image.png

anaconda python版本对应关系

image.png

1.2 安装通用并行计算架构CUDA cuDNN

https://zhuanlan.zhihu.com/p/31101419

1.2.1 安装CUDA

依次安装cuda安装包和补丁包

image.png

1.2.2 安装cuDNN

根据GPU及CUDA版本选择对应cuDNN版本,下载cuDNN v5.1 for CUDA8.0,解压拷贝到CUDA安装目录

tar –zxvf cudnn-9.0-linux-x64-v7.4.2.24.tgz

cd cuda

cp include/* /usr/local/cuda/include

cp lib64/* /usr/local/cuda/lib64

cd -

1.2.3 配置环境变量

~/.bashrc中添加如下内容:

image.png

echo “export PATH=/usr/local/cuda-9.0/bin:$PATH” >> ~/.bashrc

echo “export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH” >> ~/.bashrc

source ~/.bashrc

1.2.4 验证CUDA是否成功安装

l 方法一

nvcc –V

输出CUDA的版本信息

image.png

l 方法二

编译samples例子

image.png

编译完成后测试

可以在Samples里面找到bin/x86_64/linux/release/目录,并切换到该目录

运行deviceQuery程序,sudo ./deviceQuery

查看输出结果,重点关注最后一行,Pass表示通过测试

image.png

1.3 安装anaconda

anaconda下载:https://www.anaconda.com/download/

bash Anaconda2-2018.12-Linux-x86_64.sh

tar -xvf glibc-2.17.tar

cd glibc-2.17

mkdir build

cd build

LD_LIBRARY_PATH=

../configure --prefix=/usr/local/glibc-2.17 && make && make install

将安装目录/usr/local/glibc-2.17/lib目录定义成环境变量GLIBC_DIR

echo “export GLIBC_DIR=/usr/local/glibc-2.17/lib” >> ~/.bashrc

source ~/.bashrc

在新版glibc下运行tensorflow

在~/.bashrc中定义alias tfpython

alias tfpython="$GLIBC_DIR/ld-2.17.so --library-path $GLIBC_DIR:/lib64: /usr/lib64/:$LD_LIBRARY_PATH `which python`"

1.4 anaconda中创建python安装tensorflow

conda list 查看anaconda管理的包

其中包括numpy scipy matplotlib ipython pandas scikit-learn

.bashrc添加/root/anaconda2/bin后python版本被修改

image.png

安装时注意不修改.bashrc文件

1.4.1 xgboost安装

unzip xgboost.zip

. /root/anaconda2/etc/profile.d/conda.sh

PATH=/root/anaconda2/bin:$PATH

if [ ! -n "$1" ];then

    echo "please input a environment name..."

else

    ENV_NAME=$1

    echo "enter environment $ENV_NAME"

    conda activate $ENV_NAME

    pip install xgboost/xgboost-0.81-py2.py3-none-manylinux1_x86_64.whl scipy-1.2.0-cp27-cp27mu-manylinux1_x86_64.whl

    conda deactivate

fi

1.4.2 TensorFlow安装

l conda创建tensorflow环境

. /root/anaconda2/etc/profile.d/conda.sh

PATH=/root/anaconda2/bin:$PATH

conda create -n tensorflow python=2.7 #创建conda环境

conda activate tensorflow #激活环境

pip install tensorflow_gpu-1.8.0-cp27-cp27mu-manylinux1_x86_64.whl

conda deactivate #退出环境,回到系统默认环境

l 其他常用命令

conda remove -n tensorflow --all #删除conda环境

conda info --envs #查看所安装环境列表

conda list #查看已经安装的包

conda install [packagename] -n tensorflow #安装具体的包到指定环境

conda list -n tensorflow #tensorflow环境下安装了哪些包

conda remove -n tensorflow [packagename] #删除tensorflow环境中名为packagename的包

l 测试:

python环境中执行如下代码:

import tensorflow as tf

hello = tf.constant('first tensorflow')

sess = tf.Session()

print sess.run(hello)

输出first tensorflow

l 测试二:

另外新建会话执行watch -n 1 nvidia-smi #查看显卡信息

python mnist.py

image.png

https://www.jianshu.com/p/78a936c27ec4

https://ying-zhang.github.io/setup/2017/setup-tensorflow-gpu-centos7/

1.4.3 问题

l 问题一

ImportError: /lib64/libc.so.6: version `GLIBC_2.14' not found

https://blog.csdn.net/zhangweijiqn/article/details/53199553

在 glibc < 2.17 的系统上安装 TensorFlow:

https://zhuanlan.zhihu.com/p/33059558

推荐动态升级方式:

tar -xvf glibc-2.17.tar

cd glibc-2.17

mkdir build

cd build

../configure --prefix=/usr/local/glibc-2.17 && make && make install

将安装目录/usr/local/glibc-2.17/lib目录定义成环境变量GLIBC_DIR

echo “export GLIBC_DIR=/usr/local/glibc-2.17/lib” >> ~/.bashrc

调用新版本glibc

$GLIBC_DIR/ld-2.17.so --library-path $GLIBC_DIR:/lib64:/usr/lib64:$LD_LIBRARY_PATH <command> #必须绝对路径(which command)

在新版glibc下运行tensorflow

在~/.bashrc中定义alias tfpython

alias tfpython="$GLIBC_DIR/ld-2.17.so --library-path $GLIBC_DIR:/lib64: /usr/lib64/:$LD_LIBRARY_PATH `which python`"

调用$GLIBC_DIR/ld-2.17.so启动需要新Glibc库的程序

其他方式:

tar -xvf glibc-2.17.tar

cd glibc-2.17

mkdir build

cd build

直接升级方式

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

LD_LIBRARY_PATH=

make && make install

重建软连接方式

../configure --prefix=/usr/local/glibc-2.17 && make && make install

rm -rf /lib64/libc.so.6

LD_PRELOAD=/usr/local/glibc-2.17/lib/libc.so.6 ln -s /usr/local/glibc-2.17/lib/libc.so.6 /lib64/

恢复gblic

LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6

l 查看glibc版本

ldd –version

strings /lib64/libc.so.6 | grep GLIBC

l 问题二

ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

确认你在你的~/.bashrc(或者~/.zshrc)文件中加入了下面环境变量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64

export PATH=$PATH:/usr/local/cuda-9.0/bin

export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0

1.4.4 其他数学库安装

unzip pywavelets.zip

. /root/anaconda2/etc/profile.d/conda.sh

PATH=/root/anaconda2/bin:$PATH

if [ ! -n "$1" ];then

    echo "please input a environment name..."

else

    ENV_NAME=$1

    echo "enter environment $ENV_NAME"

    conda activate $ENV_NAME

    pip install pywavelets/PyWavelets-1.0.1-cp27-cp27mu-manylinux1_x86_64.whl

    conda deactivate

fi

1.5 centos下多个python版本问题

leap集群安装中带有python2.6的安装,python2.6主要用于Ambari-agent服务;

/usr/bin/python

1.5.1 设置当前会话窗口的环境:

. /root/anaconda2/etc/profile.d/conda.sh

PATH=/root/anaconda2/bin:$PATH

conda  activate  tensorflow

source  ~/.bashrc

tfpython  hello-world.py

1.6 脚本安装

./ nvidia-driver-install.sh

./install.sh

参考资料

https://zhuanlan.zhihu.com/p/26330963

https://blog.csdn.net/Cs_hnu_scw/article/details/79695347

https://zhuanlan.zhihu.com/p/32925500

https://blog.csdn.net/zhangxinyu11021130/article/details/64125058

centos6.5安装tensorflow:https://www.jianshu.com/p/469a7071ad04

https://blog.csdn.net/u012235003/article/details/54575758

https://fiercex.github.io/post/make_glibc/

https://zhuanlan.zhihu.com/p/33059558

有问题可以入群讨论,随时欢迎哈。

image.png

猜你喜欢

转载自blog.csdn.net/xiaohuanglv/article/details/86686254
今日推荐