AVX指令集
AVX指令集是一种较新的指令集,可以加速TensorFlow任务的执行速度。TensorFlow从version 1.6 开始默认从AVX编译二进制文件,所以现在通过pip install tensorflow
默认安装支持AVX的TensorFlow版本。
问题
今天恰好为一台老机器(core-i3)安装TensorFlow cpu版本,安装完成之后,运行示例程序提示错误:
The TensorFlow library was compiled to use AVX instructions, but these aren't available on your machine.
即此cpu不支持AVX指令集。
上网搜索问题答案,恰恰搜索出的结果都是:你的机器支持AVX指令集,但安装的TensorFlow未使用AVX。如何消除一大堆运行时的警告?这里也搬运一下警告的解决方法:
# 程序开始时添加
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
这里为使用老机器的玩家们提供解决不使用AVX指令集的方法方法!!!
解决
安装TensorFlow 1.5及之前的版本即可。
pip install tensorflow==1.5.0
CUDA和cuDNN对照表
对于TensorFlow-gpu版需要CUDA和cuDNN这两个工具,安装的时候版本如果未对应,运行时将会出现错误。
下面给出TensorFlow 1.11及其之前版本和CUDA、cuDNN的版本对照关系,防止大家安装的时候踩坑:
windows
Version | Python version | Compiler | Build tools | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-1.11.0 | 3.5-3.6 | MSVC 2015 update 3 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3.5 | MSVC 2015 update 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3.5 | MSVC 2015 update 3 | Cmake v3.6.3 | 5.1 | 8 |
Linux
Version | Python version | Compiler | Build tools | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-1.11.0 | 2.7, 3.3-3.6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 2.7, 3.3-3.6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.9.0 | 2.7, 3.3-3.6 | GCC 4.8 | Bazel 0.11.0 | 7 | 9 |
tensorflow_gpu-1.8.0 | 2.7, 3.3-3.6 | GCC 4.8 | Bazel 0.10.0 | 7 | 9 |
tensorflow_gpu-1.7.0 | 2.7, 3.3-3.6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
tensorflow_gpu-1.6.0 | 2.7, 3.3-3.6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
tensorflow_gpu-1.5.0 | 2.7, 3.3-3.6 | GCC 4.8 | Bazel 0.8.0 | 7 | 9 |
tensorflow_gpu-1.4.0 | 2.7, 3.3-3.6 | GCC 4.8 | Bazel 0.5.4 | 6 | 8 |
tensorflow_gpu-1.3.0 | 2.7, 3.3-3.6 | GCC 4.8 | Bazel 0.4.5 | 6 | 8 |
tensorflow_gpu-1.2.0 | 2.7, 3.3-3.6 | GCC 4.8 | Bazel 0.4.5 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 2.7, 3.3-3.6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 2.7, 3.3-3.6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
macOS
Version | Python version | Compiler | Build tools | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-1.1.0 | 2.7, 3.3-3.6 | Clang from xcode | Bazel 0.4.2 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 2.7, 3.3-3.6 | Clang from xcode | Bazel 0.4.2 | 5.1 | 8 |
TensorFlow历史版本
TensorFlow版本发布历史:https://pypi.org/project/tensorflow/#history
可以在这个网站找寻你需要的版本。
TensorLayer
按照TensorLayer官网文档安装:
pip install git+https://github.com/zsdonghao/tensorlayer.git
安装的是最新版的TensorLayer,需要TensorFlow 1.6.0以上版本支持。
如上文所述,由于老机器不支持AVX指令集,不得不安装了TensorFlow 1.5 版本,这里也得安装对应的TensorLayer版本。我这里选择的是TensorLayer 1.5:
sudo pip install tensorlayer==1.5
P.S. 装TensorFlow踩过一些坑,特此记录,希望能帮助后来的其他筒子。