tensorflow搭建

CUDA安装

官方下载:https://developer.nvidia.com/cuda-downloads

检查是否正确安装kernel headers(否则出现ERROR: Failed to run `/usr/sbin/dkms build -m nvidia。。。)。
  # uname -r  /**这是Kernel headers 的版本,必须在安装cuda 驱动之前安装完成**/

  # yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)

错误提示:The driver installation is unable to locate the kernel source

使用命令bash cuda_8.0.61_375.26_linux.run运行程序安装包(删除命令:/usr/local/cuda/bin/uninstall_cuda_9.0.pl)。

如果提示:缺失libGLU.so,libX11.so,libXi.so,libXmu.so,依次安装:

yum install freeglut-devel.x86_64
yum   install  libX11-devel
yum install libXi-devel.x86_64
yum install libXmu-devel.x86_64

    注意:首先出现的是说明之类的内容,按ctrl+c跳过,在接下来弹出的窗口全部选择y,如果装过驱动,可以不用再装驱动,安装路径也使用默认的。

    第四步:编译CUDA Toolkit
    ①执行完安装程序后会在/root目录下生成目录NVIDIA_CUDA-8.0_Samples文件夹
    ②进入NVIDIA_CUDA-8.0_Samples文件夹,执行make命令进行编译
    注意:在这一步有好多的warning警告信息忽略就好,有报错也大都是一些库没有安装,根据提示安装后重新编译即可

    第五步:测试CUDA Toolkit是否安装成功
    执行命令/root/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release/deviceQuery进行测试是否安装成功。
    

   装了cuda后,可以运行nvidia-smi命令。

    设置环境变量:
    echo 'export PATH=/usr/local/cuda/bin:$PATH' >>   /etc/bashrc
    echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >>  /etc/bashrc
    source  /etc/bashrc
    如果nvcc -V 成功,即安装成功。

GPU查询

下面对这个图中的内容做一个简单的解读:
(1)第一列  GPU:编号0、1
       Fan:GPU的风扇转速,N/A【智能温控,本栏目(对我)不适用,填N/A是用来占位,防止留空】
(2)第二列  Name:型号Tesla K80、Tesla K80
         Temp: 温度,单位摄氏度。
(3)第三列  Perf:性能状态,P0~P12,P0表示最大性能,P12表示状态最小性能。
(4)第四列  Persistence-M:持续模式的状态
         Pwr:能耗
(5)第五列  Bus-Id: GPU总线,domain:bus:device.function
(6)第六列  Disp.A:Display Active,表示GPU的显示是否初始化。
 Memory Usage 显存使用率。
(7)第七列  Volatile GPU-Util 浮动的GPU利用率。
(8)第八列 Uncorr. ECC   ECC是“Error Checking and Correcting”的简写,“错误检查和纠正”Compute M是计算模式。

cuDNN安装
官网下载:https://developer.nvidia.com/rdp/cudnn-download
 tar -zxf cudnn-7.5-linux-x64-v5.0-ga.tgz
 #以5.1版为例
 cd cuda
 cp include/cudnn.h /usr/local/cuda/include/
 cp lib64/* /usr/local/cuda/lib64/
 cd /usr/local/cuda/lib64
 ln -sf libcudnn.so.5.1.10 libcudnn.so.5
 ln -sf libcudnn.so.5 libcudnn.so

 ldconfig -v

cudnn sample的下载标签:Download cuDNN v2 (March 17,2015), for CUDA 6.5 and later.

    cd samples/1_Utilities/deviceQuery
    make
    ./deviceQuery
    执行完 ./deviceQuery 命令,终端输出如下类似信息,有GPU型号、驱动版本和运行版本、计算能力......诸多信息。

  python从2.7升级到3.6

wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
tar xvf Python-3.6.1.tar.xz
mkdir /usr/local/python3
cd Python-3.6.1

./configure --prefix=/usr/local/python3 --enable-optimizations
make  && make install
cd /usr/bin
mv python python.bak
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python

python -V

问题:

$ yum 

File "/usr/bin/yum", line 30 

except KeyboardInterrupt, e: 

                                         ^

SyntaxError: invalid syntax

方法:

vi /usr/bin/yum

将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2.4"即可(旧的python版本)。

except KeyboardInterrupt, e:

方法:

yum用python作为解释器,因此升级python后(如2.7升级到3.6)会报此错误,只需在第一行,加上原来的版本号,如:vi/usr/bin/yum-config-manager,    #!/usr/bin/python2.7,另外还有/usr/libexec/urlgrabber-ext-down。


安装anacoda3
1到官网(https://www.anaconda.com/download/#linux)下载安装包,
如: Anaconda2-4.3.0-Linux-x86_64.sh
2 执行bash Anaconda2-4.3.0-Linux-x86_64.sh
3 执行“回车”,直到出现yes no 选择,输入yes,然后根据提示回车进行安装,询问是否加入环境变量,输入yes,回车,安装完成。打开新终端,测试一下。成功!

如:“Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19)”

opencv 安装

官网下载,如opencv3.4。

cd opencv
mkdir build
cd build

cmake .. 

CMAKE_BUILD_TYPE:       build的类型,有Release和Debug两种
CMAKE_INSTALL_PREFIX:  指定想要安装OpenCV的文件夹目录,一般就用/usr/local
除此之外,还可以添加上BUILD_DOCS 来build文档 以及 BUILD_EXAMPLES 来build所有的样例
注意:如果上面的命令行无法工作,则把-D后面的空格去掉:
$ cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..

//升级了python,但是引得还是2.7版本,暂不知道有啥影响。

make -j 10
make install

如果执行cmake时候出现如下错误信息
FATAL: In-source builds are not allowed.

则应该是在代码根目录下直接执行过cmake,导致根目录下生成了CMakeCache.txt,需要删除CMakeCache.txt再次执行编译即可。

遇到的错误:

undefined reference to `jpeg_default_qtables'

去http://www.ijg.org/下载安装。

  1. cd jpeg-9  
  2. ./configure   
  3. make libdir=/usr/lib64    
  4. make libdir=/usr/lib64 install 

tf安装

据说tf不支持cuda 9.1(因为官方的wheel是在cuda 9.0上编译的~,cudnn要跟cudn的版本匹配),最后的环境是:cuda9.0+cudnn-9.0-v7+python3.6+tf1.7。

执行下ldconfig ,如果没有pip,执行:yum install python-pip (没有python-pip包就执行命令 yum -y install epel-release

https://pypi.python.org/pypi/tensorflow-gpu/1.4.0#downloads (CPU版本:https://pypi.python.org/pypi/tensorflow/1.4.0)下载安装文件,如:tensorflow_gpu-1.4.0-cp36-cp36m-manylinux1_x86_64
执行:pip install --upgrade  tensorflow_gpu-1.4.0-cp36-cp36m-manylinux1_x86_64.whl

出现“is not a supported wheel on this platform”,可能是版本有问题。

测试安装成功与否

vi   tensorflowTest.py

#tensorflowTest.py
import tensorflow as tf
hello = tf.constant('Hello,TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
a = tf.constant(10)
b = tf.constant(32)
print(sess.run(a + b))

运行 python tensorflowTest.py ,若最终结果与下面两行一致,则恭喜你安装成功!

//TensorFlow.py 运行结果
Hello, TensorFlow!
42

问题

ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory

找不到libcudnn库。

找不到glibc2.14

官网地址:http://www.gnu.org/software/libc/

首先, 点击此处下载glibc点击下载, 得到glibc-2.14.tar.gz使用如下命令解压glibc-2.14.tar.gz:

当前目录下得到目录glibc-2.14, 执行$cd glibc-2.14命令进入目录, 依次执行如下命令编译安装glibc-2.14:

export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH

glibc软链

发现升级后跟locale冲突,还未找到办法解决,又回退到2.12。

安装完成后, 建立软链指向glibc-2.14, 执行如下命令:

$ rm -rf /lib64/libc.so.6             // 先删除先前的libc.so.6软链
$ ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
注意
删除libc.so.6之后可能导致系统命令不可用的情况, 可使用如下方法解决:
$ LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so  ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
如果上述更新失败可使用如下命令还原:

$ LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6    // libc-2.12.so 此项是系统升级前的版本



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

山西茄子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值