Ubuntu16.4+cuda9.0+cudnn7.4+tensorflow1.7环境搭建

首先安装Anaconda

  1. Anaconda官网安装Anaconda相应的版本。
  2. 运行如下命令bash Anaconda3-4.2.0-Linux-x86_64.sh(对应本文下载的Anaconda版本)
  3. 一直确认,直到出现提示 Anaconda3 install Location to PATH in your /home/用户名/.bashrc?[yes|no]?。意思是要将anaconda加入到环境变量,以后Python默认版本变为该版本Python

安装CUDA

  1. NVIDIA官网下载对应版本的cuda,如果以前没有安装过cuda,可以下载.deb文件,如果已经安装过,则下载.run文件。推荐使用.run文件,可以安装指定版本的cuda,否则总是要求安装最新的,或者不能在已有高版本的情况下,安装低版本。
  2. 下载之后,按照官网提示的安装命令安装

  3. 安装后重启电脑,在usr/local/cuda/samples目录下运行sudo make all命令
  4. 如果成功,则提示Finished building CUDA samples
  5. 之后进入usr/local/cuda/extras/demo_suite文件夹下运行./deviceQuery

安装cudnn

  1. 进入cudnn官网(需要先注册账号),下载对应cuda的cudnn版本
  2. 在下的目录进行解压tar -zxvf cudnn-9.0-linux-x64-v7.4.2.24.tgz
  3. 解压后会出现名为cuda的文件夹,其中里面有lib64和include两个文件夹
  4. 执行
    sudo cp lib64/libcudnn* /usr/local/cuda/lib64
    sudo cp include/cudnn.h /usr/local/cuda/include
  5. cd /usr/local/cuda/lib64/
    sudo chmod +r libcudnn.so.7.4.2(自己的版本号)
    sudo ln -s libcudnn.so.7.4.2 libcudnn.so.7
    sudo ln -s libcudnn.so.7.4.2 libcudnn.so
    sudo ldconfig

    更新软连接,如果出现已有软连接,则百度一下,删除原来软连接

  6. 在~/.bashrc文件里加入环境变量

    export PATH="/home/zhangpf/Anaconda/python/bin:/usr/local/cuda-9.0/bin:$PATH"
    export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CPUTI/lib64:$LD_LIBRARY_PATH
    export CUDA_HOME=/usr/local/cuda-9.0
    

    加入后,执行source ~/.bashrc更新

安装Tensorflow

  1. 使用清华源下载安装
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow(CPU版本)
    
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.7(GPU版本,可以自己指定版本号)
  2. 使用网上的例子测试tensorflow是否安装成功,且是使用GPU训练

    import numpy
    import tensorflow as tf
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)
    sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
    print(sess.run(c))
    

    结果为下所示,则成功,并且用GPU训练

    Device mapping:
    /job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: Tesla K40c, pci bus
    id: 0000:05:00.0
    b: /job:localhost/replica:0/task:0/device:GPU:0
    a: /job:localhost/replica:0/task:0/device:GPU:0
    MatMul: /job:localhost/replica:0/task:0/device:GPU:0
    [[ 22.  28.]
     [ 49.  64.]]
    

猜你喜欢

转载自blog.csdn.net/Jimory/article/details/85061782
今日推荐