ubuntu16.04 cund9.0 cuddn7.4.1 tensroflow1.12

如果什么都好了还报错:

sudo ldconfig /usr/local/cuda-9.0/lib64 

 

1.下载NVIDIA显卡对应的驱动:

1.1 去官网下载.run文件自己安装

卸载原先的所有驱动:

 1 sudo apt-get remove --purge nvidia* 

 

 

1.2 禁用nouveau驱动:

sudo gedit /etc/modprobe.d/blacklist.conf

添加以下内容:

blacklist nouveau

之后输入

sudo update-initramfs -u

重启后验证nouveau是否已禁用,无输出就成功了

lsmod | grep nouveau

 

1.3 安装驱动

(先确定驱动的下载位置)

禁用可视化服务:

sudo /etc/init.d/lightdm stop

然后按 ctrl+alt+f4 输入用户名和密码,之后cd进入驱动的下载位置。

给驱动run文件赋予可执行权限:

sudo chmod a+x NVIDIA-Linux-x86_64-390.25.run

    (下载的驱动文件名)

安装:

sudo ./NVIDIA-Linux-x86_64-390.25.run -no-opengl-files

开启可视化服务:

sudo /etc/init.d/lightdm start

 

 

2. CUDA官网地址:

https://developer.nvidia.com/cuda-downloads(下载地址) 

如果是版本不对应重新安装先卸载:

  

sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl
sudo rm -rf /usr/local/cuda-9.0

 

之后下载对应版本

sudo sh (下载的.run)

一直按enter到100%

然后输入accept 

n

y

y

y

 

3. cuDNN :

下载地址: https://developer.nvidia.com/cudnn(需要登录) 

下载与CUDA对应的版本!!!

同上,先卸载

sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn

然后解压下载的文件,进入CUDA文件夹:

sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/

然后执行如下指令:

cd /usr/local/cuda/lib64
sudo chmod +r libcudnn.so.7.4.1
sudo ln -sf libcudnn.so.7.4.1 libcudnn.so.7  
sudo ln -sf libcudnn.so.7 libcudnn.so     
sudo ldconfig

 

4. 查看cuda与cudnn版本:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
cat  /usr/local/cuda/version.txt

5. 安装tensorflow-gpu:

sudo pip3 install tensorflow-gpu==版本号

 

6. 测试代码

import tensorflow as tf

with tf.device('/cpu:0'):
    a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a')
    b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b')
with tf.device('/gpu:1'):
    c = a + b

# 注意:allow_soft_placement=True表明:计算设备可自行选择,如果没有这个参数,会报错。
# 因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。
sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=True))
# sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(tf.global_variables_initializer())
print(sess.run(c))

(代码引用自:https: // blog.csdn.net / william_hehe / article / details / 79615894)

posted @ 2018-12-21 15:41  li__lin  阅读(348)  评论(0)    收藏  举报