Ubuntu16.04 Tensorflow pytorch安装超全记录(GTX 1080ti---CUDA9.0---cuDNN下)以及pycharm安装

系统:Ubuntu16.04

GPU: GTX 1080ti

CUDA 9.0

cuDNN v7.5.0 for CUDA 9.0

请大家看到教程不要一股脑闷头就copy paste,前面安装的CUDA和CUDNN的版本需要和tensorflow的版本相对应,下载的时候一定要注意呀!

如果大家只装pytorch的话,做一、二、三、六、五步骤即可。

目录

一、安装NVIDIA驱动

1、下载驱动程序

2、禁用nouveau第三方驱动

3、安装驱动

4、验证

二、安装CUDA

1、卸载CUDA

2、安装CUDA 9.0版本

3、添加环境变量

4、运行CUDA自带sample验证是否安装成功

三、安装cuDNN

四、安装tensorflow

1、切换python版本

2、安装pip

3、安装anaconda

4、tensorflow!!!

5、测试

参考

五、Pycharm安装

六.Pytorch的安装




一、安装NVIDIA驱动

1、下载驱动程序

http://www.nvidia.cn/Download/index.aspx?lang=cn

选择自己的显卡型号

 

2、禁用nouveau第三方驱动

打开编辑配置文件:

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

在最后一行添加:blacklist nouveau

执行命令更新:

sudo update-initramfs -u

重启使之生效:

reboot

3、安装驱动

重启后按Ctrl+Alt+F1 进入命令行界面

执行命令:lsmod | grep nouveau

禁用X服务:sudo /etc/init.d/lightdm stop

给驱动run文件赋予可执行权限:sudo chmod a+x NVIDIA-Linux-x86_64-390.25.run (下载的驱动文件名)

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

开启X服务:sudo /etc/init.d/lightdm start

(记得先用手机拍个照片再去命令行哇!)

-----------------------------------------------------------------------------------------

P.S.

–no-opengl-files 只安装驱动文件,不安装OpenGL文件。这个参数最重要

–no-x-check 安装驱动时不检查X服务

–no-nouveau-check 安装驱动时不检查nouveau

-----------------------------------------------------------------------------------------

后面两个参数可不加。

重启:reboot

4、验证

输入命令:nvidia-smi

如果出现了驱动版本就表示安装成功了。

二、安装CUDA

     不建议安装CUDA 9.1 ,建议安装CUDA 9.0版本。官网提示CUDA9.1 需要的显卡驱动必须至少是390以上版本,所以安装了384显卡驱动则需要安装CUDA9.0。

     我一开始安装最新的版本10.1的,但是安装时报错,日志文件中提示:CUDA driver version is insufficient for CUDA runtime version。吐血。。。经过一番search才发现是CUDA版本太高了,应该装9.0的!!!!因为我的驱动是384的!!!

这是CUDA以往的各个版本下载地址:

https://developer.nvidia.com/cuda-toolkit-archive

对照表:

运行时版本   驱动版本
CUDA 9.1     387.xx
CUDA 9.0     384.xx
CUDA 8.0     375.xx (GA2)
CUDA 8.0     367.4x
CUDA 7.5     352.xx
CUDA 7.0     346.xx
CUDA 6.5     340.xx
CUDA 6.0     331.xx
CUDA 5.5     319.xx
CUDA 5.0     304.xx
CUDA 4.2     295.41
CUDA 4.1     285.05.33
CUDA 4.0     270.41.19
CUDA 3.2     260.19.26
CUDA 3.1     256.40
CUDA 3.0     195.36.15

1、卸载CUDA

(如果你没有安装错版本,则不需要做这一步)

在目录:

cd /usr/local/cuda-10.1/bin

有CUDA自带的卸载工具cuda-uninstaller,使用命令:

sudo ./cuda-uninstaller

 

2、安装CUDA 9.0版本

安装时的选择

-----------------
Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n

Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
 [ default is /usr/local/cuda-9.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
 [ default is /home/zpp ]:

Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...


3、添加环境变量

把cuda路径添加到当前用户的配置文件里:

sudo gedit ~/.bashrc

将安装路径添加到文件末尾:

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

然后执行如下命令使路径生效:

. ~/.bashrc

修改的时候会出现不支持设置属性,我查了查说是正常现象可以忽略

 

4、运行CUDA自带sample验证是否安装成功

cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

最后result=PASS说明安装成功噶!!

三、安装cuDNN

下载链接:https://developer.nvidia.com/rdp/cudnn-download,需要注册之后才能打开,

选择 Download cuDNN v7.5.0 (Feb 21, 2019), for CUDA 9.0,然后选择 cuDNN Library for Linux

下载下来之后解压安装,执行如下步骤:

tar -zxvf cudnn-9.0-linux-x64-v7.5.0.56.tgz

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d

sudo chmod a+r /usr/local/cuda/include/cudnn.h

sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

执行完如上命令之后,cuDNN 就安装好了,这时我们可以发现在 /usr/local/cuda/include 目录下就多了 cudnn.h 头文件。 

终端中执行nvcc -V 显示如下信息则表示成功

四、安装tensorflow

1、切换python版本

(Ubuntu默认的是python 2.7版本,我想要使用python 3.6版本。)

1)添加源并更新

sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update

2)安装指定版本的python,可以更改成你需要的版本:

sudo apt-get install python3.6 python3.6-dev

安装32位库

sudo apt-get install libncurses5-dev

3)切换python版本:
安装好后会在 /usr/bin/ 下出现 python3.6 这个可执行文件,现在需要切换版本(默认版本2.7)

设置python3.6的路径,并设置优先级为200,默认优先级最高的优先使用

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 200 

然后使用命令查看已添加的路径和优先级:

sudo update-alternatives --config python

 

 

2、安装pip

去官网复制get-pip.py脚本文件:https://bootstrap.pypa.io/get-pip.py
复制好以后,终端键入

sudo python get-pip.py

自动下载pip,安装好pip后

终端键入 pip -V 查看,是否正确指向python3.6包的路径并且结尾是否是python3.6 ,无误后就可以安装其他



当然,如果切换回python2.7也要运行安装pip的命令

3、安装anaconda

这里有anaconda的各个版本,选择自己适合的版本下载,我选择的是Anaconda3-5.1.0-Linux-x86_64

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

https://repo.anaconda.com/archive/

这两个网站都可以下载,500多M,下载挺慢的。

下载好之后切换到下载路径

cd /home/download

运行一下命令进行安装:

bash Anaconda3-5.0.1-Linux-x86_64.sh

根据提示按回车,然后一路回车“--更多--”看完注册信息,然后输入yes接受注册信息,

然后出现一个问题,一直让我checking  Internet connectivity,但是我网络状态没有问题呀,查看他提示的日志文件

Checking Internet connectivity ...
   Please make sure you are connected to the internet!
   Check /home/zpp/anaconda3/vscode_inst.py.log for more info

打开/home/zpp/anaconda3/vscode_inst.py.log,可以看到错误提示:

ERROR:vscode_inst:haveInternet
Traceback (most recent call last):
  File "/home/zpp/anaconda3/pkgs/vscode_inst.py", line 141, in haveInternet
    assert r.status_code == 200
AssertionError

于是找到这个File "/home/zpp/anaconda3/pkgs/vscode_inst.py"的141行,看来是这个判别条件没有满足

既然我的机器是联网的,那应该就是安装中需要访问的链接我无法访问,看到代码里有一行:

VSCODE_ENDPOINT = 'https://vscode-update.azurewebsites.net/api/update/{}/stable/version'.format(VSCODE_SUBDIR) # NOQA

这里要下载VSCODE,这个链接我打不开, https://vscode-update.azurewebsites.net/api/update/{}/stable/version

于是我自己下载了VSCODE并安装,https://code.visualstudio.com/Download

选择.deb文件,64位,下载完成后双击code_1.32.2-1552488294_amd64.deb文件进行安装。

安装完成后重新进行anaconda的安装,注意在之前的命令后面加一个-u,可以覆盖之前的未完成安装的文件

bash Anaconda3-5.1.0-Linux-x86_64.sh -u

这样 再次安装anaconda就成功了,

Thank you for installing Anaconda3!

===========================================================================

Anaconda is partnered with Microsoft! Microsoft VSCode is a streamlined
code editor with support for development operations like debugging, task
running and version control.

To install Visual Studio Code, you will need:
  - Administrator Privileges
  - Internet connectivity

Visual Studio Code License: https://code.visualstudio.com/license

Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]
>>> yes
Proceeding with installation of Microsoft VSCode
VSCode is already installed!

当他问我们希望安装VScode吗,我们输入yes后他检测到VScode已经安装~~

至此anaconda安装完成!!!真不容易呀~

但是当我运行anaconda -V查看是否安装成功的时候

???明明上面写着thank you for installing Anaconda3的呀!!吓的我菊花一紧

然后我看到这句话的上一行 :For this change to become active ,you have to open a new terminal

哇!虚惊一场!!重新打开一个终端就行啦!

好险!!Anaconda 真真真安装成功啦!

gedit ~/.bashrc查看环境变量,可以看到在我们之前手动添加的CUDA的环境变量后面已经自动添加了anaconda的环境变量了,如果没有可以手动添加一下,然后source ~/.bashrc一下使之生效。

这样我们在命令行输入python就会默认打开anaconda3中的python了。

4、tensorflow!!!

1)创建Tensorflow的运行环境:

conda create -n tensorflow python=3.6

显示环境创建在/home/zpp/anaconda3/envs/tensorflow

可能会有warning说有新的conda版本,不用管他。要下载安装一些包:yes

Proceed ([y]/n)? y

然后经过漫长的等待,中间可能还会有这种问题:

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

我重新运行了一下就可以了。。不知道什么原因,可能是网络问题吧。

2)重新运行后都done了,根据提示我们activate环境:

source activate tensorflow

3)确定版本

确认一下python、pip、anaconda版本

python --version
pip --version
anaconda --version

根据自己的CUDA、cuDNN版本对照找到TensorFlow的版本:

官网上有对照版本:https://tensorflow.google.cn/install/source

贴个图:注意这是linux GPU的哦~

确认CUDA、CUDNN的版本:(前两个都是查看CUDA版本,最后一个查看CUDNN版本)

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

我推测:

根据:

#define CUDNN_MAJOR 7
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 0

说明我的CUDNN版本是7.5.0的,恩就是这样!

 关于GCC,只要是4.8版本以上的就行(gcc -V查看gcc版本)

我的CUDA是9.0的、CUDNN是7.5.0的,所以我可以用1.5.0及其以后的版本,

4)利用pip安装TensorFlow 

https://pypi.org/project/tensorflow/1.12.0/#history

 选择要安装的版本会跳转到project description页面,在左上角蓝色的框里自动出现你要安装版本的pip安装代码,复制到终端里加上gpu(不然安装的就是CPU版的啦!!!我怎么知道的??呜呜呜)再运行:

pip install tensorflow-gpu==1.12.0

运行如下:

显示successfully installed

不知道是不是最终安装成功了,忐忑

5、测试

输入pyhton进入python环境:(记得首先source activate tensorflow环境哦~)

import tensorflow as tf
hello = tf.constant('Hello Tensorflow')
sess = tf.Session()
print(sess.run(hello))

输出‘Hello Tensorflow’说明安装成功,但是为啥会有个b呢???我没有查到是什么原因,大家知道的麻烦留言告诉我好嘛~

python
import tensorflow as tf
tf.__version__     (查看版本)
tf.__path__        (查看路径)

至此!!!!终于安装成功啦啦啦啦!!!!

 

另外还有基于virtualenv安装的,有直接用Bazel利用源码编译安装,我感觉用pip比较简单。如果用pip安装失败的同学可能就要试一试编译源代码安装了,这个在https://blog.csdn.net/u014797226/article/details/80229887中有介绍。

 

tips:

退出python:Ctrl+D或者quit

退出tensorflow环境,source deactivate

进入tensorflow环境,source activate tensorflow

 

关于卸载:

如果你也像我一样不小心安装了CPU版本的……

sudo pip3 uninstall tensorflow

这是卸载方法,重新安装是会说路径已存在,根据提示去那个路径下把tensorflow那个文件夹删了就行~~

 


参考其他大神的教程、记录了自己遇到的问题,希望大家都能顺利装好~

参考的博文可能会有漏掉的,别骂我,我改!

前前后后历经一周,课间挤时间来实验室安装,终于安装成功了!!!!

室友们都以为我恋爱了,早出晚归时而沮丧时而雀跃

哈哈哈 我只是……装了个tensorflow而已

 

祝大家学习进步呀~~

这里是TensorFlow 官方文档中文版,感觉会有用的~贴一下~

http://wiki.jikexueyuan.com/project/tensorflow-zh/


参考

tensorflow的CUDA driver version is insufficient for CUDA runtime version 问题解决方案

Ubuntu 16.04切换python版本安装pip

Ubuntu 16.04安装NVIDIA驱动

Ubuntu安装Tensorflow(GPU版)

Ubuntu16.04下安装python3.6详细步骤及anaconda安装

anaconda3安装时解决VScode出错的问题


更新:

五、Pycharm安装

之前安装好了tensorflow,接下来安装pycharm

下载好安装包https://www.jetbrains.com/pycharm/download/#section=linux

右击提取到此处,cd到bin目录

./pycharm.sh

 setting我选择的不导入,然后安装了ideavim和markdown的插件,这个看自己的需求。

https://www.z2blog.com/index.php/default/493.html


选择解释器,existing interpreter,注意选择我们之前安装tensorflow目录下的解析器,应该会显示(tensorflow),否则会用不了tensorflow的模块。

 

测试:

手写数字的识别案例:

数据:https://pan.baidu.com/s/1UC6uBPPOBzZhYvNV93RgNw#list/path=%2F

代码:

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    # @Time   : 2018/3/30 0030 15:20
    # @Author : scw
    # @File   : writenumbercompute.py
    # 描述:进行手写数字的识别的实例分析
    import tensorflow as tf
     
    from tensorflow.examples.tutorials.mnist import input_data
     
    # 获取数据
    mnist = input_data.read_data_sets("E:/tensorflowdata/MNIST_data/", one_hot=True)
     
    print('训练集信息:')
    print(mnist.train.images.shape,mnist.train.labels.shape)
    print('测试集信息:')
    print(mnist.test.images.shape,mnist.test.labels.shape)
    print('验证集信息:')
    print(mnist.validation.images.shape,mnist.validation.labels.shape)
     
    # 构建图
    sess = tf.InteractiveSession()
    x = tf.placeholder(tf.float32, [None, 784])
    W = tf.Variable(tf.zeros([784,10]))
    b = tf.Variable(tf.zeros([10]))
     
    y = tf.nn.softmax(tf.matmul(x,W) + b)
     
    y_ = tf.placeholder(tf.float32, [None,10])
    cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y),reduction_indices=[1]))
    train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
     
    # 进行训练
    tf.global_variables_initializer().run()
     
    for i in range(1000):
      batch_xs, batch_ys = mnist.train.next_batch(100)
      train_step.run({x: batch_xs, y_: batch_ys})
     
    # 模型评估
    correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
     
    print('MNIST手写图片准确率:')
    print(accuracy.eval({x: mnist.test.images, y_: mnist.test.labels}))

结果运行如下:

 

 显示了很多tensorflow的日志信息,好烦哦,随便搜了一个解决方法是加两行代码。

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'

嗯!!确实清净了很多!!嘻嘻!!不过每次都加两行代码,很麻烦,不知道大家有没有其他办法,可以分享一下下~~


参考:

  1. https://www.cnblogs.com/huozf/p/9304396.html
  2. https://blog.csdn.net/u014044812/article/details/78727496
  3. https://blog.csdn.net/Cs_hnu_scw/article/details/79695347
  4. https://blog.csdn.net/re_psyche/article/details/86469595

 


六.Pytorch的安装

由于需要又安装了pytorch

如果是只安装pytorch不装tensorflow的小朋友不进行步骤四即可。

官网在此:https://pytorch.org/

如果可以kx上网的小朋友直接选好自己的环境,copy它给的命令运行就行:

选择cuda的版本就默认是GPU版的,选择none则是CPU版的。

不能kx上网的就去清华开源镜像网上下载:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/ 

我下载的是:

pytorch-0.4.1-py36_py35_py27__9.0.176_7.1.2_2.tar.bz2

torchvision-0.2.1-py36_1.tar.bz2

下载好之后解压安装:

conda install pytorch-0.4.1-py36_py35_py27__9.0.176_7.1.2_2.tar.bz2
conda install torchvision-0.2.1-py36_1.tar.bz2

 安装完成,import检验一下:

import torch
import torchvision

print(torch.cuda.is_available())
#检验GPU是否可用

ok!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章