从源码编译安装TensorFlow的教程

环境

mac catalina 10.15.1


为什么要从源代码编译?


1 AVX2警告

如果直接“pip3 install tensorflow"的话,很可能出现如下警告:

登录后复制

Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX21.


此种警告的原因是pip安装的都是x86编译的,而大多系统都是64位,网上对于此种警告有两种解决方法,一种是在.py加上两行代码屏蔽警告,一种就是找已经编译好的.whl文件然后pip3 install .whl文件就行,


编译好的文件github链接。


但是这毕竟是别人编译的,更新速度不是很快,比如就没有支持最新catalina系统的(20191112),


故笔者参考官网教程从源代码编译,由于一些细节问题官网教程没有详尽解释,故特此说明


2 系统兼容性警告

对于catalina系统,可能现有的已经编译的安装包不太适用。


安装过程


1 对于mac OS,需要安装homebrew(过程自查)


2 安装python3(apt(linux)或者brew(mac)安装)

注意mac有自带的python2,还有xcode带来的python2和3,强烈建议用brew安装并更改默认python3运行路径为/usr/local/bin/python3(brew安装下的路径)


3 安装 tensorflow pip依赖项

使用虚拟环境时,省略掉–user参数

登录后复制

pip3 install -U pip six numpy wheel setuptools mock future1.




登录后复制
pip3 install -U keras_applications1.


后面可能出现以下错误

登录后复制

Executing genrule //tensorflow/python/keras/api:keras_python_api_gen_compat_v2 failed1.


所以可以先安装keras

登录后复制

pip3 install keras1.



4 安装Bazel

这是安装参考链接,以下安装最新版的命令,但一般情况可能不需要安装最新版,具体后面会讲

登录后复制

brew tap bazelbuild/tapbrew install bazelbuild/tap/bazel1.2.


查看bazel版本,如果output版本说明安装成功

登录后复制

bazel --version1.


如果已经安装,可以升级

登录后复制

brew upgrade bazelbuild/tap/bazel1.


如果是安装以前的版本,可以参照上述参考链接安装,以下是针对mac的安装步骤

从源代码编译安装tensorflow_tensorflow


5 下载tensorflow源代码

使用git clone,如下

登录后复制

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


但是一般下载速度贼慢,网上针对git clone主要两种解决方法,一个是改host文件,一个是走代理外网。笔者只是看了看没试过,笔者是用了外网直接在github上下载的"tensorflow-master.zip"文件,然后解压成"tensorflow-master"文件夹。


如果需要以前的tensorflow版本,那还不如上这个github链接下载.whl直接install。


6 配置编译系统

首先cd到"tensorflow-master"文件夹,如果是git clone,那么直接按照官网上"cd tensorflow"就行。


然后输入命令"./configure"回车,就会弹出结果。


这个时候如果你安装的是bazel最新版,那么他会提示你版本太高去下一个低版本的,这时候回到步骤4中的参考链接下载以前的版本安装就行。


bazel版本对了之后会出现一系列选择,如下图

从源代码编译安装tensorflow_tensorflow_02

  • 首先是选择python所在路径,选择brew安装下的路径"/usr/local/bin/python3",终端也会有提示
  • 然后是选择python3包的路径,选择brew安装下的路径"/usr/local/lib/python3.7/site-packages"
  • 然后是选择g++和gcc路径
  • 然后就是一堆支持选择,具体自查,不懂就全选提示中大写的选项,不过最好一个个简单查一下,以下列出一些

    关于XLA JIT支持

    关于 OpenCL SYCL:选择y会让你选择路径,一般路径不存在说明你没安装,不如选N

    关于ROCm:同上

    关于CUDA支持:这是能够用GPU加速的关键

    关于clang:笔者第六感选y

    关于android:懂者自懂,不懂选N

    关于IOS支持:笔者苹果笔记本选择了y,但没查这干啥的


7 编译pip软件包

对于CPU版

登录后复制

bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package1.


对于GPU版

登录后复制

bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package1.


编译时需要注意的问题(笔者是没注意(狗头),哈哈):

从源代码编译安装tensorflow_python_03这一步很久,估计两三个小时,耐心等待~~


8 编译软件包

对于从master编译,即最新版,输入以下命令

登录后复制

./bazel-bin/tensorflow/tools/pip_package/build_pip_package --nightly_flag /tmp/tensorflow_pkg1.


就可以在/tmp/tensorflow_pkg文件夹下看到编译好的.whl文件啦,为了方便也可以更改路径比如在桌面


9 安装软件包

对于/tmp/tensorflow_pkg文件下的.whl,参考以下命令

登录后复制

pip3 install /tmp/tensorflow_pkg/tensorflow+tab键补全.whl1.


此时就成功安装tensorflow了!


10 运行demo

新建.py脚本,复制以下代码:

登录后复制

import tensorflow as tfhello = tf.constant('hello world')  # 创建一个常量print(hello)  
# 输出print(hello.numpy())  # 输出张量的值print(hello.shape)   # 输出维度print(hello.dtype)  
# 输出张量类型1.2.3.4.5.6.


就可以开始tensorflow快乐之旅了!



   

   

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空