美文网首页
在Ubuntu16.04上编译安装GPU版TensorFlow

在Ubuntu16.04上编译安装GPU版TensorFlow

作者: 我是喵啊喵 | 来源:发表于2017-06-03 14:11 被阅读0次

    这段时间一直在学习TensorFlow,刚好自己有台带NVIDIA显卡的笔记本,于是尝试着在自己电脑上安装,电脑的配置如下:


    1、CUDA和cuDNN

    从NVIDIA官网下载CUDA和cuDNN,然后安装到默认路径,下载cuDNN可能需要注册,注册一个官网账号下载即可。
    CUDA的默认安装位置是/usr/local/cuda (该目录是一个软连接,指向的真实目录是/usr/local/cuda8.0)
    cuDNN下载之后解压,将cuDNN复制到/usr/local/cuda/目录之下,方便程序调用

    2、Anaconda3

    官网上下载安装包,然后使用命令安装
    sudo bash ./Anaconda3-4.3.1-Linux-x86_64.sh
    一直按enter键,输入yes继续
    然后安装程序提示安装位置,默认是home目录 这里我使用/usr/local/目录
    因为我想用anaconda自带的Python替代系统默认的Python版本,所以这里输入yes并回车,安装程序会在~/.bashrc文件末尾添加环境变量,将bin目录添加到PATH中去
    至此,anaconda环境安装完成 可以查看一下系统Python版本,看是否替换为anaconda提供的版本


    安装完成后修改anaconda3目录的权限,使其属于当前用户(修改权限也是为了方便当前用户使用,个人觉得anaconda3安装在home下更方便些)
    sudo chown -R fish /usr/local/anaconda3/

    3、TensorFlow源码安装

    TensorFlow使用Bazel构建,在安装TF之前需要安装bazel,具体安装方法参考http://blog.csdn.net/u010510350/article/details/52247972
    从github上下载源码包https://github.com/tensorflow/tensorflow/archive/v1.1.0.tar.gz
    解压然后configure

    tar -zxvf ./tensorflow-1.1.0.tar.gz
    cd tensorflow-1.1.0/
    ./configure
    

    开始下载依赖包,下载完成后configure过程结束,下面开始编译过程
    bazel build --copt=-march=native -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
    经过漫长的时间编译完成后,生成pip安装包
    bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
    最后使用pip命令安装tensorflow
    pip install /tmp/tensorflow_pkg/tensorflow-1.1.0-cp36-cp36m-linux_x86_64.whl

    4、测试安装结果

    运行源码中的示例代码,手写数字识别
    python tensorflow/examples/tutorials/mnist/mnist_softmax.py


    运行结果如上,可以看到程序使用显卡计算,测试成功。

    5、安装过程中出现的问题

    如果运行时出现

    ImportError: /usr/local/anaconda3/bin/../lib/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/local/anaconda3/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)
    

    是因为Anaconda3中自带的libstdc++库文件比较老
    使用命令查看
    strings /usr/local/anaconda3/lib/libstdc++.so.6 | grep CXXABI


    发现没有CXXABI_1.3.8,查看anaconda中的库文件

    两个软连接指向了libstdc++.so.6.0.19。
    我的系统是Ubuntu16.04,因此在/usr/lib/x86_64-linux-gnu/目录中有libstdc++.so.6.0.21,拷贝系统目录中的库文件到anaconda的lib目录中,并重新建立软连接
    cd /usr/local/anaconda3/lib/
    ln -sf ./libstdc++.so.6.0.21 ./libstdc++.so
    ln -sf ./libstdc++.so.6.0.21 ./libstdc++.so.6
    

    问题解决

    相关文章

      网友评论

          本文标题:在Ubuntu16.04上编译安装GPU版TensorFlow

          本文链接:https://www.haomeiwen.com/subject/mdlefxtx.html