zoukankan      html  css  js  c++  java
  • tensorflow的安装和注意事项

    想了一下还是把tensorflow安装的过程整理一下吧,万一时间久了忘了呢。

    终于tensorflow的安装可以告一段落了,内心还是很兴奋的,这次还是好好的整理下。

    尤其是注意的地方,往往时我折腾了好久,查阅了大量的资料,测试了好多次,才验证出来的硕果。

    1、准备工作

      1、更换源,好的软件源,直接决定你的安装速度。这里选择清华的。

      操作:进入:设置 --> 软件和更新 --> Ubuntu软件,打开下载自:选择 其他,选择清华。点击 选择服务器 确认,在弹出框选择,重新载入。

      2、更新软件包,防止有些工具没有安装上。

    sudo apt update
    

      3、打开:设置 --> 软件和更新 --> 附加驱动

      选择NVIDIA公司专有的最新驱动,选择应用更改。时间较长,请耐心等待。

    2、安装cuda

      下载文件,这里我选择run本地文件,进入文件所在目录,并运行,XXX代指文件名,历史版本

    sudo sh XXX.run
    

      安装注意,这时会出现很多信息,按ctr+c关闭信息,再按accept接受。

      接下来询问是否,安装驱动,输入n,不要安装。因为已经安装过。

      一路输入y,或者回车。

      进入/home/用户名/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery,打开终端,输入

    sudo make
    

      然后输入

    ./deviceQuery
    

      如果显示pass,说明cuda安装成功,如果显示说,cuda驱动不满足于cuda运行库,说明驱动太旧,或者cuda太新。参照修改。

    3、下载并安装cudnn(本段参照于http://blog.csdn.net/m0_37924639/article/details/78785699)

      下载cudnn,安装CUDNN

      进入CUDNN安装包所在目录,执行以下命令:

    sudo dpkg -i runtime包.deb
    sudo dpkg -i developer包.deb
    sudo dpkg -i 代码sample包.deb
    

      报错查看此项https://blog.csdn.net/u011636567/article/details/77162217

      至此,CUDNN安装完成。

      验证CUDA和CUDNN是否安装成功

      CUDNN的code sample可以用来检查CUDNN和CUDA是否安装成功,执行以下命令:

    sudo cp -r /usr/src/cudnn_samples_v7/ $HOME
    cd $HOME/cudnn_samples_v7/mnistCUDNN
    sudo make clean
    sudo make
    sudo ./mnistCUDNN

      正常情况下执行以上代码会得到Test passed!的结果。如果在make步出错,那么可能gcc需要降级(由于一直未出现类似错误,作者未验证);

      如果出现CUDA driver version is insufficient for CUDA runtime version,说明你的显卡驱动版本低于cuda工具包的版本。

      如果下载的是压缩包,那个运行库,可以使用下面的。

    cd  /home/***(自己的用户名)/Desktop/###(这个命令意思是找到刚刚我们用U盘传过来的文件)
    tar xvzf cudnn-8.0-linux-x64-v5.1-ga.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*
    

    4、版本说明

      1、显卡驱动要高于cuda版本,cudnn要选择和cuda版本一样的

      2、建议安装的cuda版本和驱动的版本一致,比如我的驱动目前只能是384.11(9.0版本),最好安装cuda工具包9.0

      3、安装对应的cudnn9.0

    4、安装tensorflow  

    在配置完cudnn之后,可以直接在终端输入

    sudo pip install tensorflow==1.5.0

    或者安装CPU版本

    sudo pip install tensorflow==1.5.0

    如果网速不好的话,也可以自己在https://github.com/tensorflow/tensorflow下载whl文件,往下翻,在installation下面,然后使用

    sudo pip install xxx.whl
    

     5、简便安装的方法

    如果确定了自己的显卡支持的最高版本驱动,可以直接参照下面的方法:

    1、cuda的下载和安装

      下载适合你的cuda版本(包含驱动,即驱动版本)

      关闭目前的图形界面,

    sudo service lightdm stop
    

      按住ctr + alt + f1,进入命令行界面,输入帐号和密码,并且登录。

      进入你的cuda下载目录,比如我的在Download里面

    cd Download
    sudo sh XXX.run --silent --overide

      不输入参数,先accept,一路y或者回车默认

      打开图像界面

    sudo service lightdm start
    

      进入图形界面,按下ctr + alt + f7

      进入用户主路径

    cd ~
    

      进入cuda的例子make并且运行,验证是否正确安转cuda

    cd /home/shuailing/NVIDIA_CUDA-9.0_Samples/1_Utilities/deviceQuery
    make
    ./dedeviceQuery

      如果最后一行显示pass,说明安装成功。

      注意:这个方法,我在工作站安装成功,在自己的电脑上失败,出现的现象时,反复登录。

      解决方法:先安装显卡驱动,在安装cuda,在安装cuda的时候,询问是否安装cuda驱动(显卡驱动),选择否。

      如果,出现了重启可以切换回之前的驱动。

    2、下载并安装cudnn

      下载cudnn,安装CUDNN

      进入CUDNN安装包所在目录,执行以下命令:

    sudo dpkg -i runtime包.deb
    sudo dpkg -i developer包.deb
    sudo dpkg -i Codesample包.deb 

    注意:这里需要按照这个顺序来进行,负责最后的代码测试包,是无法安装的。

      如果测试说,找不到,libdart文件,说明没有把 cuda的lib库加入LD_LIBRARY_PATH中。

      这个之前也加入过,但是总是有其他的意外,这里把加入环境变量,再说一便。

    sudu gedit .bashrc
    

      把下面两行加入.bashrc最后

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

      输入下面命令使其立即生效,之前的cudnn测试的窗口。需要重新打开,才能更新新的环境变量。

    source .bashrc
    

      如果是解压放入到库中的,还需要对其libcudnn进行链接,ln -s 源文件 目标文件

    3、安装tensorflow-gpu

      下载tensorflow-gpu,之后进入下载路径

      pip安装

    sudo pip install tensorflow_gpu-1.6.0-cp27-cp27mu-manylinux1_x86_64.whl

    这个tensorflow-gpu==1.6.0,需要实测,cuda9+cudnn7.0可以用,之前用cuda9+cudnn7.1运行程序说,找到cudnn7.1版本,但是期望是7.0。程序报错。

    4、验证

    python
    import tensorflow
    

      不报错说明安装成功。  

    6、源码安装

    1、克隆tensorflow

    git clone https://github.com/tensorflow/tensorflow
    

    2、进入下载目录的tensorflow主目录,配置编译环境

    ./configure
    

      除了Cuda、Cudnn相关的yes,其余的不相关的都选择n。剩下的默认回车就好。

    3、完成之后编译

    sudo bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
    sudo mkdir /tmp/tensorflow_pkg
    sudo bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
    sudo pip install/tmp/tensorflow_pkg/tensorflow-1.2.0rc2-cp27-cp27mu-linux_x86_64.whl

      之前因为权限不够,编译出错不加载,执行第三条说找不到文件。现在全部加了权限。

    4、参照上面的测试

     5、最后的注意:

      描述:在我运行程序的时候,终端运行正常使用GPU,可是在pycharm中运行就报错,说找不到libcublas.so.9.0.源码编译的时候也说找不到/usr/bin/ld的什么文件。

      尝试的方法:tensorflow降级,结果不可以。实际上我的cuda和cudnn都是要求的9.0和7.0,明明在/usr/local/cuda/lib64中可以找到这个文件的。可是不论是降级还是配置cudnn的libcudnn.so的链接都不行。

      后来,在手机上偶然查到。

      解决方案:在/etc/ld.so.conf中最后一行添加/usr/local/cuda-9.0/lib64。或者在ld.so.conf.d这个目录新建一个档案,以.conf结尾(建议),最后输入sudo ldconfig使其立即生效。

      解释:其实上面那个含有libculas的路径,正常的已经被添加到LD_LIBRARY_PATH中了,可是程序运行的时,不一定回读到这个变量,所以需要设置/etc/ld.so.conf把,含有libcublas的路进加入的系统中。

  • 相关阅读:
    高等数学(完结版)
    数据结构(c语言描述)
    leetcode-mid- 50. Pow(x,n)-NO
    leetcode-mid-math
    leetcode-mid-math-202. Happy Number-NO
    leetcode-mid-dynamic programming- Longest Increasing Subsequence-NO
    leetcode-mid-design-380. Insert Delete GetRandom O(1)
    leetcode-mid-design-297. Serialize and Deserialize Binary Tree¶-NO -??
    leetcode-mid-dynamic programming-322. Coin Change
    leetcode-mid-dynamic programming-62. Unique Paths
  • 原文地址:https://www.cnblogs.com/smartmsl/p/8508332.html
Copyright © 2011-2022 走看看