1 安装选择

1.1 平台

目前TensorFlow已支持Mac、Ubuntu和Windows三个主流平台(64位平台),

1.2 GPU vs CPU

在安装时可以选择安装版本是否支持GPU,

1.3 二进制安装 vs 源码安装

同时,安装时可以考虑采用二进制安装,还是源码安装,

1.4 二进制安装选择

二进制安装可以有多种选择,

1.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环境搭建,下面我们着重介绍下这种安装方式。

2 Ubuntu16.04+TensorFlow(GPU)源码编译

2.1 Ubuntu系统安装

目前,大多数计算机,包括台式机已没有了光驱,同时,Ubuntu的系统安装盘也不易获得。针对这种情况,我们可以采用U盘来进行安装。具体步骤可以参考:《Ubuntu 16.04 U盘安装图文教程》

2.2 禁用UEFI安全启动

对于华硕 B150M-ET主板,UEFI默认是开启的。而UEFI开启会导致第三方驱动安装失败(如显卡驱动,这是源码编译安装GPU支持的TensorFlow,遇到的第一个坑)。具体步骤可以参考:《华硕主板禁用UEFI安全启动》

2.3 安装NVIDIA驱动

2.3.1 安装方式

英伟达的显卡驱动有三种方式:

  • apt-get+系统设置安装
  • 安装CUDA时顺便安装
  • 官方下载最新驱动并安装
    参考:《Ubuntu 16.04安装NVIDIA驱动》

2.3.2 安装步骤

本文采用第一种方案:

sudo apt-get install nvidia-367

然后进入:System Settings->Software&Updates->Additional Drivers->,选择NVIDIA Corporation[Using NVIDIA binary driver]

2.3.3 验证测试

nvidia-smi #若列出GPU的信息列表,表示驱动安装成功
nvidia-settings #若弹出设置对话框,亦表示驱动安装成功

2.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

2.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*

2.6 gcc降低版本

网上说cuda8.0不支持5.0以上的编译器,因此需要降级,把编译器版本降到4.9,但我看了CUDA8.0的安装手册《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++

2.7 安装Bazel

Bazel是一个构建工具,即一个可以运行编译和测试来组装软件的工具,跟Make、Ant、Gradle、Buck、Pants和Maven一样。TensorFlow的编译是基于Bazel完成的。
Bazel官方地址:https://docs.bazel.build/versions/master/install.html

2.7.1 安装准备

2.7.2 安装

Bazel可以通过apt-get和下载安装两种方式完成,本文中,采用下载安装的方式实现,

chmod +x PATH_TO_INSTALL.SH
./PATH_TO_INSTALL.SH --user

2.8 第三方库安装

sudo apt-get install python-numpy swig python-dev python-wheel
sudo apt-get install libcupti-dev
sudo apt-get install git

2.9 TensorFlow源码编译

2.9.1 下载

git clone https://github.com/tensorflow/tensorflow

2.9.2 编译配置

cd ~/tensorflow
./configure

2.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源码编译。

2.10 环境测试

可以通过如下代码进行测试,

# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

正常测试输出,

Hello, TensorFlow!

3 资料参考

《Ubuntu 16.04 U盘安装图文教程》

《华硕主板禁用UEFI安全启动》

《Ubuntu 16.04安装NVIDIA驱动》

《alt+ctrl+F1黑屏 ,解决方案》

《Ubuntu16.04 下安装GPU版TensorFlow(包括Cuda和Cudnn)》

《ubuntu16.04下安装TensorFlow(GPU加速)》

anaconda tensorflow 2.3_TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)相关推荐

  1. LNMP架构环境搭建之PHP、Nginx源码编译安装及其简单配置应用

    LNMP架构中的Mysql见上一篇博文"LNMP架构环境搭建之mysql源码编译安装" 一.PHP简介 PHP(外文名:PHP: Hypertext Preprocessor,中文 ...

  2. 【Android NDK 开发】Android Studio 的 NDK 配置 ( 源码编译配置 | 构建脚本配置 | 打包配置 | CMake 配置 | ndkBuild 配置 )

    文章目录 I . 源码编译配置 II . 构建脚本配置 III . NDK 函数库打包配置 IV . Java 与 C 代码示例 V . CMake 配置 ( CMakeLists.txt ) VI ...

  3. 干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法工程师 安装平台 1 平台 目前Tensor ...

  4. 学习笔记Hadoop(十三)—— MapReduce开发入门(1)—— MapReduce开发环境搭建、MapReduce单词计数源码分析

    一.MapReduce MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归纳)&qu ...

  5. OpenCL编程(1)- 开发环境搭建(NVIDIA GPU+Win10篇)

    基于NVIDIA GPU的OpenCL开发环境搭建的步骤如下: 1.下载安装显卡驱动 使用鲁大师或驱动精灵下载安装与显卡型号相适应的显卡驱动并安装,若采用默认路径安装,则在路径C:\Program F ...

  6. 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

    作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...

  7. 在ubuntu16.04上使用源码安装caffe2

    转载请声明,谢谢. Facebook终于开源了caffe2,参照Tutorials,完成caffe2安装. 参考:https://caffe2.ai/docs/getting-started.html ...

  8. 深度学习环境搭建Ubuntu16.04+CUDA8.0+CUDNN6.0+Anaconda3+tensorflow1.3.0

    电脑为联想拯救者Y7000,显卡GTX1650. 装的是WIN10+Ubuntu16.04双系统. 一.双系统装Ubuntu16.04 主要借鉴的下面的链接,包括删除Ubuntu,系统分区. http ...

  9. TensorFlow学习(五)之Ubuntu16.04安装TensorFlow———GPU版本(gtx1070+ubuntu16.04)

    Ubuntu16.04系统安装系列: Ubuntu系统安装QQ+百度云盘+微信+迅雷下载等 Ubuntu系统安装网易云音乐 Ubuntu系统安装搜狗输入法 Ubuntu系统安装SMPlayer播放器 ...

最新文章

  1. python 线程池
  2. windows下python搭建网站_Windows平台下搭建Pytest
  3. 浅谈计算机硬件维护 论文,浅谈计算机硬件维护的论文(2)
  4. linux 软raid创建过程
  5. java fangfa_daicanfangfa java中的方法 刚入门的分不清带参方法的作用和用处 这个可以详细的讲解如何使用带参方法 - 下载 - 搜珍网...
  6. IP、ARP、RARP、ICMP、IGMP(网络协议:网络层协议)
  7. java printstream 覆盖了_Java PrintStream clearError()方法与示例
  8. C++ vector 容器
  9. 【第一部分】01Leetcode刷题
  10. VGG11、VGG13、VGG16、VGG19网络结构图
  11. 5G SA信令流程介绍
  12. 使用JavaScript获取设备屏幕的宽度
  13. HBuilderX连接安卓模拟器
  14. matlab标定工具安装,标定工具(matlab仿真工具)
  15. CPU和内存的电路设计01-非门电路
  16. 四川大学计算机学院硕士毕业要求,四川大学计算机学院(软件学院)2020年非全日制硕士研究生接受调剂生的通知...
  17. 小京东 去版权 去后门 终极版 ecshop
  18. python第一行代码_“少年py”001:下载Python软件,写第一行代码
  19. 深度学习之 自然语言处理BERT
  20. c++11线程池的实现原理及回调函数的使用

热门文章

  1. 使用jQuery实现图片轮播与切换功能
  2. c语言编程求nba比赛,c语言获取直播吧最近一周nba比赛信息
  3. 第4节 树形计算可转换债券价格
  4. excel文件的数据筛选和数据匹配
  5. c语言编写机床宏程序,数控宏程序的概念.doc
  6. 微服务架构的分布式事务解决方案(3)--常规MQ队列消息的处理流流程和特点(基于可靠消息的最终一致性)
  7. 2020年中国研究生数学建模竞赛A题
  8. SpringBoot引用配置
  9. JAVASE面试总结
  10. 【经验分享】深度解析产品经理七大职责