Ubuntu18.4+cuda9+cudnn7.3+tensorflow用pycharm运行

本文详细介绍了在Ubuntu18.4系统下,从获取root权限开始,逐步安装配置JDK8、bazel、NVIDIA驱动、cuda9.0、cudnn7.2以及tensorflow的过程,解决了多个常见问题,适用于初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu18.4+cuda9+cudnn7.3+tensorflow用pycharm运行

实验室电脑不支持cuda,于是乎打算在笔记本上搭建一个tensorflow GPU的环境,结果不停的踩坑,坑到我怀疑人生。现在cuda最新版本是10.0,别以为新版本就好,千万不能装这个,目前tensorflow1.11 也只支持9.0。别问我怎么知道的,一把辛酸泪。网上资料很多,但是我这个相对比较方便,适合小白入门。

更新:

刚刚检查了一下tensorflow1.11.0版本,发现更适合cuDNN7.2,下载7.2比7.3更好。

1、获取root权限

在安装之前,先得取得用户权限,后面一些插件或者文件修改可能需要root权限

sudo passwd root  #直接设置root密码,获得用户权限

如下:
Enter new UNIX password: (输入密码)
Retype new UNIX password: (输入密码)
passwd: password updated successfully

su root  #输入密码,进入root模式

提示:
Password: (输入root密码)
然后点击回车(密码正常不显示,输入后直接回车即可),终端前的账户会变为root@ubunt
注意,先退出root模式再进行后面的安装,不然安装位置是/root下的位置,而不是默认/usr下的位置。root下安装和设置路径都和普通模式有区别,总之先普通模式下安装,在装不上软件或者改不了数据时才用root。

2、安装支持环境

  1. 安装支撑环境JDK8(安装pycharm也需要这个):
    依次执行以下几条:
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

安装过程中会跳出Oracle license对话框,选择接受就是了。
安装完成后,运行"java -version"或者"javac -version"查看是否安装成功。如果得到类似如下的输出,表明安装成功了。普通安装不成功,就在root模式下装。
java version 1.8.0181

  1. 安装bazel(cuda需要)
    在包资源中增加Bazel的发布源
echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -

安装和更新Bazel

sudo apt-get update 
sudo apt-get install bazel
sudo apt-get upgrade baze

3.安装NVIDIA

可以用命令

ubuntu-drivers devices  # 查看推荐的驱动版本

选择合适驱动。注意安装显卡驱动版本需要比cuda9.0默认的384高。
方法一:直接用代码安装NVIDIA

sudo apt-get install nvidia-driver-390   # 我的推荐版本是390,根据自己的推荐版本来
nvidia-smi  # 测试是否安装成功。出现显卡信息即表示成功

方法二:找到软件更新器(推荐)
在软件菜单找到软件更新器——设置——附加驱动——NVIDIA最新驱动——应用更改。
在这里插入图片描述
后面安装cuda和cudnn时,最好把下载的文件都放在一个文件夹里面,方便操作。
在这里插入图片描述

4、安装cuda9.0

  1. 在官网下载cuda9.0,同时还有4个补丁,一起下载,我下载的是run格式。18.4可以用16.4的版本。
    (https://developer.nvidia.com/cuda-90-download-archive)
    在这里插入图片描述

  2. 由于CUDA 9.0仅支持GCC 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3,故手动安装gcc-6与g++ -6:

sudo apt-get install gcc-6 g++-6
  1. 之后切换至/usr/bin目录修改符号链接,使GCC 6成为默认使用版本:
cd /usr/binsudo rm gccsudo ln -s gcc-6 gccsudo rm g++sudo ln -s g++-6 g++
  1. 安装:
    找到下载的cuda文件,在该目录进行操作,为CUDA 9.0安装包赋予运行权限并运行之:
    sudo chmod 775 cuda_9.0.176_384.81_linux.run
    sudo  sh  cuda_9.0.176_384.81_linux.run # 安装cuda9.0
    sudo  sh  cuda_9.0.176_1_linux.run   # 安装补丁1,同样方法安装安装补丁2,3,4,

注意:安装时会出现介绍信息,如果出现很多信息,按q退出介绍,进行安装。
第一个问accept,除了询问是否安装NVIDIA-384这个选项(一般是第二或第三个问)选择n,其他选项y,或者回车
默认安装目录为::/usr/local/cuda-9.0/
5. 环境变量设置

sudo gedit ~/.bashrc  # 注意在root和非root环境下打开的bashrc不一样

添加环境变量,可以直接复制粘贴在文件的最后,注意格式一定要和我一样,我之前输的是其他形式的,不能用。

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

让环境变量立即生效

   source ~/.bashrc 

通过echo命令测试一下:

echo $PATH  # 显示当前环境变量
  1. 测试是否安装正确
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
    sudo make
    ./deviceQuery
 
    cd ../bandwidthTest
    sudo make
    ./bandwidthTest

结果为Result = PASS 则安装正确。
注意,千万别用 nvcc -v 进行检查,明明已经安装好了,还一直报错。

5、安装cudnn

  1. 在官网上下载cudnn7.3.1版本
    下载
    注意:需要注册才能下
    在这里插入图片描述
  2. 安装cudnn
    解压,然后输入
sudo nautilus   # 只有在这个模式下才能进行所有文件的复制粘贴

直接找到cudnn解压之后的文件cuda,里面有两个文件夹,直接合并到/usr/local/cuda-9.0/里面去。
ok,安装成功。

6、安装pycharm及tensorflow运行

  1. 安装pycharm方法自己百度
    注意 sh格式安装的,root下安装和非root下安装不通用。
  2. 安装tensorflow
    直接命令安装:
sudo pip3 install --upgrade pip
sudo apt-get install python3-pip python3-dev
pip3 install tensorflow-gpu
  1. 运行pycharm
    测试代码:
import tensorflow as tf
hello = tf.constant('hello, Tensorflow!')
sess = tf.Session()
print(sess.run(hello)

然后一般都会报错:

ImportError: libcublas.so.9.0: cannot open shared object file: No such file...

我之前一直以为是没安装成功,或者是cuda路径没对,重装了一次系统也没解决,最后百度了很久才发现,linux系统下pycharm需要设置路径:
打开pycham run->Edit Configurations;设置环境变量(Enviroment variables):LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64(注意自己cuda安裝的路径)
现在在运行就不会报错了

  1. 补充
    环境变量设置好以后,还是报错,可以试一下一下代码,添加软路径:
sudo ln -s /usr/local/cuda-9.1/lib64/libcublas.so.9.1 /usr/lib/libcublas.so.9.1
sudo ln -s /usr/local/cuda-9.1/lib64/libcusolver.so.9.1 /usr/lib/libcusolver.so.9.1
sudo ln -s /usr/local/cuda-9.1/lib64/libcudart.so.9.1 /usr/lib/libcudart.so.9.1
sudo ln -s /usr/local/cuda-9.1/lib64/libcudnn.so.7 /usr/lib/libcudnn.so.7
sudo ln -s /usr/local/cuda-9.1/lib64/libcufft.so.9.1 /usr/lib/libcufft.so.9.1
sudo ln -s /usr/local/cuda-9.1/lib64/libcurand.so.9.1 /usr/lib/libcurand.so.9.1

好了,大功告成,为了安装这个花了我两三天时间,第一次装了cuda10,第二次在nvcc -v处被坑,第三次在设置环境变量和pycharm路径处被坑,以为没装对,一共重装了三次系统,特意写出来,让大家少被坑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值