干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
本文转自|机器学习算法工程师
安装平台
1
平台
目前TensorFlow已支持Mac、Ubuntu和Windows三个主流平台(64位平台),
2
GPU vs CPU
在安装时可以选择安装版本是否支持GPU,
3
二进制安装 vs 源码安装
同时,安装时可以考虑采用二进制安装,还是源码安装,
4
二进制安装
二进制安装可以有很多选择,
5
实际使用选择
手头上有两台电脑,
MacBook Pro (Retina, 13-inch, Early 2015)
处理器:2.7 GHz Intel Core i5
内存:8GB 1867MHz DDR3
显卡:Intel Iris Graphics 6100 1536MB攀升兄弟组装台式机
处理器:英特尔 Core i7-6700 @3.40GHz 四核
主板:华硕 B150M-ET M2 SERIES
内存:8G(威刚DDR4 2801MHz)
硬盘:三星 MZ7TE256HMHP-00000(256GB/固态硬盘)
显卡:Nvidia GeForce GTX 950(2GB)
其中,
MacBook Pro采用基于Anaconda的二进制安装方式(仅支持CPU)。Anaconda是一个集成平台,包含大多数机器学习的常用工具,
NumPy:科学运算包
SciPy:在NumPy的基础上构建,功能更加强大的科学计算包
Matplotlib:类似Matlab的绘图工具包
Scikit-learn:经典机器学习工具包
Pandas:数据处理和分析工具包(可用于数据读写、清洗、填充和分析等场景)
采用Anaconda安装方案,一方面MacBook Pro的开发环境很容易搭建(几句命令即可完成),另一方面,基于Anaconda的环境,也可以方便验证简单的机器学习算法。
对于台式机则采用了Ubuntu+GPU+TensorFlow源码编译的方式,进行TensorFlow环境搭建,下面我们着重介绍下这种安装方式。
Ubuntu16.04+TensorFlow(GPU)源码编译
1
Ubuntu系统安装
目前,大多数计算机,包括台式机已没有了光驱,同时,Ubuntu的系统安装盘也不易获得。针对这种情况,我们可以采用U盘来进行安装。具体步骤可以参考:《Ubuntu 16.04 U盘安装图文教程》
2
禁用UEFI安全启动
对于华硕 B150M-ET主板,UEFI默认是开启的。而UEFI开启会导致第三方驱动安装失败(如显卡驱动,这是源码编译安装GPU支持的TensorFlow,遇到的第一个坑)。具体步骤可以参考:《华硕主板禁用UEFI安全启动》
3
安装NVIDIA驱动
3.1安装方式
英伟达的显卡驱动有三种方式:
apt-get+系统设置安装
安装CUDA时顺便安装
官方下载最新驱动并安装
参考:《Ubuntu 16.04安装NVIDIA驱动》
3.2安装步骤
本文采用第一种方案:
sudo apt-get install nvidia-367
然后进入:System Settings->Software&Updates->Additional Drivers->,选择NVIDIA Corporation[Using NVIDIA binary driver]
3.3验证测试
nvidia-smi #若列出GPU的信息列表,表示驱动安装成功
nvidia-settings #若弹出设置对话框,亦表示驱动安装成功
4
安装CUDA
CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。可以理解成基于GPU并行计算的应用层接口。
CUDA8.0下载地址
安装Cuda的时候,需要关闭X服务。
sudo service lightdm stop
这时,系统会出现黑屏。此时,同时按住[CTRL + ALT + F1]三个键进入命令行模式(如果不能进入命令行模式,可以参考《alt+ctrl+F1黑屏 ,解决方案》),
然后输入[账号],[密码]后登陆。
在CUDA的下载目录运行,
sudo sh cuda_xxx.run
要注意的是,在询问是否安装“NVIDIA Accelerated Graphics Driver”可以选择“是”,
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
(y)es/(n)o/(q)uit: y
但在后续出现询问是否安装“X configuration”时,则需要选择“否”,否则之前安装的显卡驱动就白安装了。
CUDA安装结束后,则可以恢复到图形界面模式,
sudo service lightdm start
到这里,CUDA的安装还不算结束,需要将CUDA相关的内容添加到系统环境变量中。安装过程中Summary提示,
Please make sure that
– PATH includes /usr/local/cuda-8.0/bin
– LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root
CUDA相关的环境变量可以放在~/.bashrc中,
vi ~/.bash_profile
在其中,增加如下两行,
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda- 8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda-8.0
5
安装cuDNN
cuDNN(CUDA Deep Neural Network)相比标准的cuda,它在一些常用的神经网络操作上进行了性能的优化,比如卷积,pooling,归一化,以及激活层等等。下载地址:https://developer.nvidia.com/rdp/cudnn-download
下载cuDNN后进行解压,并执行如下命令:
sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include
sudo cp -d cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*
6
gcc降低版本
网上说cuda8.0不支持5.0以上的编译器,因此需要降级,把编译器版本降到4.9,但我看了CUDA8.0的安装手册《NVIDIA CUDA INSTALLATION GUIDE FOR LINUX》,并没有发现这一条,《NVIDIA CUDA INSTALLATION GUIDE FOR LINUX》
在实际使用中,还是将GCC做了降级(PS,在安装时可以先不降级,看看是否会出问题),GCC降级方法如下,
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++
7
安装Bazel
Bazel是一个构建工具,即一个可以运行编译和测试来组装软件的工具,跟Make、Ant、Gradle、Buck、Pants和Maven一样。TensorFlow的编译是基于Bazel完成的。
Bazel官方地址:https://docs.bazel.build/versions/master/install.html
7.1安装准备
7.2安装
Bazel可以通过apt-get和下载安装两种方式完成,本文中,采用下载安装的方式实现,
chmod +x PATH_TO_INSTALL.SH
./PATH_TO_INSTALL.SH --user
8
第三方库安装
sudo apt-get install python-numpy swig python-dev python-wheel
sudo apt-get install libcupti-dev
sudo apt-get install git
9
TensorFlow源码编译
9.1下载
git clone https://github.com/tensorflow/tensorflow
9.2编译配置
cd ~/tensorflow
./configure
9.3编译安装
bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
sudo pip install /tmp/tensorflow_pkg/tensorflow-0.10.0-cp2-none-any.whl
至此,便完成了支持GPU的TensorFlow源码编译。
10
环境测试
可以通过如下代码进行测试,
# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
正常测试输出,
Hello, TensorFlow!
参考资料
《Ubuntu 16.04 U盘安装图文教程》
《华硕主板禁用UEFI安全启动》
《Ubuntu 16.04安装NVIDIA驱动》
《alt+ctrl+F1黑屏 ,解决方案》
《Ubuntu16.04 下安装GPU版TensorFlow(包括Cuda和Cudnn)》
《ubuntu16.04下安装TensorFlow(GPU加速)》
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)相关推荐
- LNMP架构环境搭建之PHP、Nginx源码编译安装及其简单配置应用
LNMP架构中的Mysql见上一篇博文"LNMP架构环境搭建之mysql源码编译安装" 一.PHP简介 PHP(外文名:PHP: Hypertext Preprocessor,中文 ...
- 【Android NDK 开发】Android Studio 的 NDK 配置 ( 源码编译配置 | 构建脚本配置 | 打包配置 | CMake 配置 | ndkBuild 配置 )
文章目录 I . 源码编译配置 II . 构建脚本配置 III . NDK 函数库打包配置 IV . Java 与 C 代码示例 V . CMake 配置 ( CMakeLists.txt ) VI ...
- anaconda tensorflow 2.3_TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)
1 安装选择 1.1 平台 目前TensorFlow已支持Mac.Ubuntu和Windows三个主流平台(64位平台), 1.2 GPU vs CPU 在安装时可以选择安装版本是否支持GPU, 1. ...
- OpenCL编程(1)- 开发环境搭建(NVIDIA GPU+Win10篇)
基于NVIDIA GPU的OpenCL开发环境搭建的步骤如下: 1.下载安装显卡驱动 使用鲁大师或驱动精灵下载安装与显卡型号相适应的显卡驱动并安装,若采用默认路径安装,则在路径C:\Program F ...
- 学习笔记Hadoop(十三)—— MapReduce开发入门(1)—— MapReduce开发环境搭建、MapReduce单词计数源码分析
一.MapReduce MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归纳)&qu ...
- 在ubuntu16.04上使用源码安装caffe2
转载请声明,谢谢. Facebook终于开源了caffe2,参照Tutorials,完成caffe2安装. 参考:https://caffe2.ai/docs/getting-started.html ...
- 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...
- WSL Ubuntu 20.04下Android源码编译与导入Android Studio
源码下载见前文:WSL Ubuntu 20.04下Android源码下载 idegen 模块编译 在development/tools/idegen/README下可以看到关于 idegen 工具的相 ...
- 源码编译Ros, Ubuntu18.04系统使用源码编译Ros1,出错集合及其解决办法
官方的介绍http://wiki.ros.org/kinetic/Installation中提到了,脚本安装的方法it is available for Ubuntu Wily (15.10) and ...
最新文章
- 外汇呼叫中心如何在严格监管中存续
- 二、MySql优化七个查询命令特征
- Developer Express 之 XtraReport如何显示设计窗体,打开已设计过的报表
- C#之windows桌面软件第一课:倒时器软件
- C++面试宝典2011
- 【Linux指标】内存篇
- NYOJ 248 BUYING FEED (贪心)
- 基于GDAL库,读取海洋风场数据(.nc格式)c++版
- 斐波那契查找+思路分析
- 条款11 在operator=中处理“自我赋值”
- Python实例讲解 -- tkinter canvas (设置背景图片及文字)
- HTML之表单的基本知识
- 【NOIP2002】【Luogu1032】字串变换
- Chromium学习笔记
- 2021年最新林学类期刊JCR影响因子及分区
- 15个国外便宜主机介绍
- 01.JS基础_前端的语法(4)
- 给edittext每行加下划线
- 【攻防世界 level2】
- 车牌定位系统matlab,基于Matlab的车牌定位系统的研究与设计论文
热门文章
- AI一分钟 | 小鹏汽车回应前苹果员工窃取商业机密:积极配合相关调查
- 独家 | 5大冠军出炉!李开复的AI挑战赛,冠军们聊到了这么些感受
- Kafka 2.8独立运行,不再需要ZooKeeper
- 可能是全网最全,JAVA日志框架适配/冲突解决方案,可以早点下班了
- 大年夜排查bug:竟然是同事把Redis用成这鬼样子,坑了我
- 谈 Kubernetes 的架构设计与实现原理
- 如何用Pandas处理文本数据?
- 2019腾讯广告算法大赛-冠军之路
- ICLR 2022|唯快不破!面向极限压缩的全二值化BiBERT
- 反向 Dropout!韩松团队最新工作NetAug:提高Tiny神经网络性能的新训练方法