Ubuntu16.04下安装tensorflow(GPU加速)【转】
本文转载自:https://blog.csdn.net/qq_30520759/article/details/78947034
本文主要是通过tensorflow官网的教程来实现安装,如果无法安装的话也可以试着用源码去安装(源码安装相对比较复杂不推荐)。
1.前期的环境查询准备
1.1查看tensorflow的对于系统的基本要求
在安装任何一个软件的时候,我们首先应该去尝试了解它的运行环境,否则可能安装很久后到后面还是没有办法使用。
tensorflow的官方网址为:https://www.tensorflow.org/install/
我们看到tensorflow对于系统还是有一定的要求的,考虑到兼容性和开源资料的丰富度,我最后选择的系统的ubuntu16.04.
1.2选择在ubuntu系统上下载tensorflow
点击上图中的Installing Tensorflow on Ubuntu进入安装教程界面:
考虑到计算和运行速度我这里选择Tensorflow with GPU support。
1.3NVIDIA requirements to run TensorFlow with GPU support
在ubuntu的安装教程界面有英伟达对于用GPU跑Tensorflow的一些要求。具体如下图几点,简单用中文翻译就是:
- 1.CUDA®工具包8.0。 有关详细信息,请参阅NVIDIA的文档。 确保按照NVIDIA文档中所述将相关的Cuda路径名添加到LD_LIBRARY_PATH环境变量中。
- 2.与CUDA Toolkit 8.0相关的NVIDIA驱动程序。
- 3.CUDNN v6.0。 有关详细信息,请参阅NVIDIA的文档。 确保按照NVIDIA文档中所述创建CUDA_HOME环境变量。
- 4.具有CUDA Compute Capability 3.0或更高版本的GPU卡。 请参阅NVIDIA文档以获取支持的GPU卡列表。
在满足了以上信息后我们开始正式安装。
2.NVIDIA显卡驱动的安装
2.1打开终端先删除旧的驱动
sudo apt-get purge nvidia*
- 1
2.2禁用自带的 nouveau nvidia驱动 (important!)
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
- 1
并在文件中添加如下内容:
blacklist nouveau
options nouveau modeset=0
然后在更新一次 sudo update-initramfs -u
修改后需要重启系统。确认下Nouveau是已经被你干掉,使用命令: lsmod | grep nouveau
结束X-window服务
首先我们需要结束x-window的服务,否则驱动将无法正常安装,通过以下命令实现。
sudo service lightdm stop
- 1
然后切换到tty1控制台:Ctrl+Alt+F1即可
2.4安装驱动
cd /home/katherine/
sudo sh ./NVIDIA*.run
- 1
- 2
重新启动X-Window: sudo service lightdm start
,然后Ctrl+Alt+F7进入图形界面
2.5检查
nvidia-smi
- 1
如果安装不成功,则需要卸载重来 sh ./NVIDIA.run --uninstall
,或者可以尝试使用另一种方法。
在ubuntu系统中选择软件更新中的附加驱动来更新驱动。
按照上面图片点击即可,需要保证在联网的状态下,亲测可行。
3.gcc降版本
ubuntu的gcc编译器是5.4.0,然而cuda8.0不支持5.0以上的编译器,因此需要降级,把编译器版本降到4.9:
在terminal中执行:
sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/g++ g++/usr /bin/g++-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
4.安装CUDA
在cuda所在目录打开terminal依次输入以下指令(可以点进官网下载CUDA):
cd /home/***(自己的用户名)/Desktop/###(这个命令意思是找到刚刚我们用U盘传过来的文件)
sudo dpkg -i cuda-repo-ubuntu1604-8-0-rc_8.0.27-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
- 1
- 2
- 3
- 4
5.安装CUDNN
打开terminal依次输入以下指令:
cd /home/***(自己的用户名)/Desktop/ #(这个命令意思是找到刚刚我们用U盘传过来的文件)
tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz #(解压这个文件)
sudo cp cuda/include/cudnn.h /usr/local/cuda/include # (复制)
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 # (复制)
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
- 1
- 2
- 3
- 4
- 5
6.确定如何安装TensorFlow
这里选择”native” pip,点击进去即可
6.1确定你电脑上python的版本
在安装ubuntu系统时,你的电脑会自动安装python,你必须确定你的电脑安装的是哪个版本:
- Python 2.7
- Python 3.4+
pip或pip3软件包管理器通常安装在Ubuntu上。 花点时间确认(通过发出pip -V或pip3 -V命令)安装了pip或pip3。 我们强烈建议使用8.1或更高版本的pip或pip3。 如果未安装版本8.1或更高版本,请发出以下命令,该命令将安装或升级到最新的pip版本:
sudo apt-get install python-pip python-dev # for Python 2.7
sudo apt-get install python3-pip python3-dev # for Python 3.n
- 1
- 2
6.2开始下载tensorflow
6.2.1通过调用以下命令之一来安装TensorFlow
pip install tensorflow # Python 2.7; CPU support (no GPU support)
pip3 install tensorflow # Python 3.n; CPU support (no GPU support)
pip install tensorflow-gpu # Python 2.7; GPU support
pip3 install tensorflow-gpu # Python 3.n; GPU support
- 1
- 2
- 3
- 4
如果上步失败,请通过发出以下格式的命令来安装最新版本的TensorFlow:
sudo pip install --upgrade tfBinaryURL # Python 2.7
sudo pip3 install --upgrade tfBinaryURL # Python 3.n
- 1
- 2
7.完成安装开始验证
在terminal中输入:
python
- 1
然后输入程序验证:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
- 1
- 2
- 3
- 4
如果安装成功,则会显示 Hello, TensorFlow!
Ubuntu16.04下安装tensorflow(GPU加速)【转】的更多相关文章
- ubuntu16.04下安装TensorFlow(GPU加速)----详细图文教程【转】
本文转载自:https://blog.csdn.net/zhaoyu106/article/details/52793183 le/details/52793183 写在前面 一些废话 接触深度学习已 ...
- Ubuntu16.04下安装Tensorflow GPU版本(图文详解)
不多说,直接上干货! 推荐 全网最详细的基于Ubuntu14.04/16.04 + Anaconda2 / Anaconda3 + Python2.7/3.4/3.5/3.6安装Tensorflow详 ...
- 通过Anaconda在Ubuntu16.04上安装 TensorFlow(GPU版本)
一. 安装环境 Ubuntu16.04.3 LST GPU: GeForce GTX1070 Python: 3.5 CUDA Toolkit 8.0 GA1 (Sept 2016) cuDNN v6 ...
- Ubuntu16.04下安装Tensorflow CPU版本(图文详解)
不多说,直接上干货! 推荐 全网最详细的基于Ubuntu14.04/16.04 + Anaconda2 / Anaconda3 + Python2.7/3.4/3.5/3.6安装Tensorflow详 ...
- Ubuntu16.04下安装数据库oracle客户端
在Ubuntu16.04下安装oracle数据库客户端,使Django项目连接到远程Oracle数据库. 1.下载oracle客户端安装包: 进入官网http://www.oracle.com/tec ...
- Ubuntu16.04下安装redis
Ubuntu16.04下安装redis 保证网络畅通,选定好下载工作路径,执行以下命令下载redis-3.2.6: sudo wget http://download.redis.io/release ...
- docker学习笔记(一)—— ubuntu16.04下安装docker
docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...
- ubuntu16.04下安装artoolkit5
目前对AR技术的常见理解就是CV(Computer Vision)+CG(Computer Graphic).CV的方法很多,简单些比如FREAK+ICP(ARToolKit中的NFT),复杂些就是S ...
- Ubuntu16.04下安装多版本cuda和cudnn
Ubuntu16.04下安装多版本cuda和cudnn 原文 https://blog.csdn.net/tunhuzhuang1836/article/details/79545625 前言 因为之 ...
随机推荐
- java基础---->多线程之Daemon(五)
在java线程中有两种线程,一种是用户线程,另一种是守护线程.守护线程是一种特殊的线程,当进程中不存在非守护线程了,则守护线程自动销毁.今天我们通过实例来学习一下java中关于守护线程的知识.我是个平 ...
- 腾讯云分布式高可靠消息队列CMQ架构
版权声明:本文由张浩原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/126 来源:腾云阁 https://www.qclou ...
- Android Activity与Fragment生命周期 对应关系
- Android 简单案例:继承BaseAdapter实现Adapter
import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import ...
- linux下一些常用命令和访问目录
1. 目录 ls 列出目录文件名 ll 列出所有目录文件的访问权限等相关信息,包括 . .. ls -a 列出所有目录文件名,包括 . .. ls - ...
- 微信小游戏 Egret开发数据域官方Demo下载地址
随着引擎的升级,伴随而来就是各种问题,使用官方调试过的Demo,少走弯路. Mark下 官方Demo
- 二叉树各种相关操作(建立二叉树、前序、中序、后序、求二叉树的深度、查找二叉树节点,层次遍历二叉树等)(C语言版)
将二叉树相关的操作集中在一个实例里,有助于理解有关二叉树的相关操作: 1.定义树的结构体: typedef struct TreeNode{ int data; struct TreeNode *le ...
- 通过nginx 访问thinkphp
修改 nginx的配置文件: location / { root /var/www; index index.html index.htm index.php; if (!-e $request_fi ...
- yii2GridView的简单使用
GridView::widget([ 'dataProvider' => $dataProvider,// 你传过来的ActiveDataProvider // 'filterModel' =& ...
- sql 将一张表中的数据插入到另一张表
将表T_wz_wz中的部分数据插入到表t_wz_kc: insert into t_wz_kc(wzid,jldwid,kcsl,yfpkcsl,cshwcbz) select wzid,jldwid ...