anaconda安装keras_tensorflow-编译安装以去掉AVX指令警告

昨天跑起来keras_bert示例代码,一运行又看到AVX指令警告,意思是你的CPU指令集支持AVX,可以更快的运行代码。一怒之下,决定编译tensorflow生成适合自己机器的pip安装包。参考官网说明:

从源代码编译 | TensorFlow​tensorflow.google.cn
0df6b4f86c9fce95b93a1c39f8538290.png

我是在anaconda的虚拟环境python3.6下安装的。下边按照官网编译安装步骤进行说明,这里只记录各步骤需要注意的内容。

44bcd7662dfc68fa091075e299a98308.png

这一步先是安装brew和python,我的机器已经安装过annaconda并用anaconda创建了python3.6的虚拟环境,因此这一步可以跳过。

849498ea5d0f4a5c630c7ee7b84f94c0.png

这一步是安装tensorflow中所依赖的keras相关包,我这一步是在整个编译安装以后导入tensorflow出现错误后,又来运行的,运行后导入tensorflow时就不出错了。但是我在运行这一部分的命令的时候,也同时卸载掉了之前安装的keras和keras_bert,不知道是不是因为卸载了keras和keras_bert而使导入tensorflow不再出问题了。所以建议还是先运行这些命令吧。注意:如果是在虚拟环境,也就是我现在在python3.6的虚拟环境下,去掉命令中的--user。

8e91e0037300e5f1b466d8223b513842.png

安装编译工具Bazel,tensorflow的源码应该是用bazel编译的,所以官网要求安装Bazel用来编译下载下来的tensorflow源码。起初我是直接用brew install bazel安装的,这样安装的bazel版本会比较高,后边在运行configure程序的时候会提示bazel版本太高的问题,所以又去下的bazel安装包安装的,我现在机器用的bazel版本为

bazelbuild/bazel​github.com
9199837db96ff2bda4dc5ff878074f39.png

下载bazel-0.26.1-installer-darwin-x86_64.sh,直接运行下边的命令安装

$ sh bazel-0.26.1-installer-darwin-x86_64.sh

安装完成后,不需要配置环境变量,直接执行查看版本的命令,返回版本号就说明安装成功了。查看版本的命令

$ bazel version
WARNING: --batch mode is deprecated. Please instead explicitly shut down your Bazel server using the command "bazel shutdown".
Build label: 0.26.1
Build target: bazel-out/darwin-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Thu Jun 6 11:08:11 2019 (1559819291)
Build timestamp: 1559819291
Build timestamp as int: 1559819291

05ba687fa6023aa85ace9ec547f1179b.png

这一步,我直接用的master分支,没有执行git checkout。

12dc25dfeff902e8fbc5bd972257ab66.png

我这里运行configure后,返回的提示一路回车,没有输入N的地方。

a16d46a1d0488afa65506aeaca791ff4.png

这里,macbook pro的显卡不是nvida的,也就不用有GPU支持了。在编译的过程中会到google下载很多包,有时候会下不下来,这个编译的命令多运行几次吧。如果实在不行,就直接把出错的地方提示出来的下载链接直接复制到safari浏览器下载,或者用迅雷下载,再在本地搭建一个apache服务,让它从本地下载这些包。具体可以参考下边的文章,注意添加下载地址那里不是“http://localhost/包名.tar.gz”而是“http://localhost:8080/包名.tar.gz”。

https://blog.csdn.net/s_sunnyy/article/details/86074114​blog.csdn.net

ae6382bc8b2c0b7fbda949a6c80e3f89.png

这一步是生成供pip安装tensorflow的软件包。我这里先执行的是--nightly_flag的选项的命令,后来发现它生成的.whl文件根本就安不上tensorflow,然后又执行了不带--nightly_flag的选型的命令,用生成的 .whl安装tensorflow后才安装成功。

f1777b58e3028b9d7070bf478a45756a.png

这个命令中红色字符串是你的机器下得到的.whl文件的名称,在我的机器上是这样的名称

$ ls -lh /tmp/tensorflow_pkg/
total 496736
-rw-r--r--  1 yufei  wheel   121M  9 14 08:14 tensorflow-1.14.0-cp36-cp36m-macosx_10_7_x86_64.whl
-rw-r--r--  1 yufei  wheel   121M  9 14 08:56 tf_nightly-1.14.0-cp36-cp36m-macosx_10_7_x86_64.whl

注意那个tf_nightly就是前一步骤中用--nightly_flag选项生成的,不能用,用tensorflow-1.14.0-cp36-cp36m-macosx_10_7_x86_64.whl文件。

至此,所有编译安装过程结束,想要验证安装是否成功,直接打印版本号,我这里除了打印了tensorflow的版本号也打印了keras的版本号,由于keras_bert没有提供__version__方法所以只是导入,以防止因为tensorflow编译安装有问题,导致keras和keras_bert不能用了。如果你也想安装keras和keras_bert直接pip install keras, pip install keras_bert即可。

$ ipython
Python 3.6.2 |Continuum Analytics, Inc.| (default, Jul 20 2017, 13:14:59)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.7.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import tensorflow

In [2]: tensorflow.__version__
Out[2]: '1.14.0'

In [3]: import keras
Using TensorFlow backend.

In [4]: keras.__version__
Out[4]: '2.2.5'

In [5]: import keras_bert

如果导入以及打印版本号都没有问题,说明tensorflow已经安装好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值