问题: 安装TensorFlow(CPU版本),使用pip install tensorflow安装,安装一切顺利,可是在跑一个简单的程序时,遇到以下状况: 大概意思是:你的CPU支持AVX扩展,可是你安装的TensorFlow版本没法编译使用。 缘由: 除了一般的算术和逻辑,现代CPU提供了许多低级指令,称为扩展,例如, SSE2,SSE4,AVX等来自维基百科: 高级矢量扩展(AVX)是英特尔在2008年3月提出的英特尔和AMD微处理器的x86指令集体系结构的扩展,英特尔首先经过Sandy Bridge处理器在2011年第一季度推出,随后由AMD推出Bulldozer处理器在2011年第三季度.AVX提供了新功能,新指令和新编码方案。 特别是,AVX引入了融合乘法累加(FMA)操做,加速了线性代数计算,即点积,矩阵乘法,卷积等。几乎全部机器学习训练都涉及大量这些操做,所以将会支持AVX和FMA的CPU(最高达300%)更快。该警告指出您的CPU确实支持AVX(hooray!)。 在此强调一下: 这只限于CPU。若是你有一个GPU,你不该该关心AVX的支持,由于大多数昂贵的操做将被分派到一个GPU设备上(除非明确地设置)。在这种状况下,您能够简单地忽略此警告。 那为何会出现这种警告呢? 因为tensorflow默认分布是在没有CPU扩展的状况下构建的,例如SSE4.1,SSE4.2,AVX,AVX2,FMA等。默认版本(来自pip install tensorflow的版本)旨在与尽量多的CPU兼容。另外一个观点是,即便使用这些扩展名,CPU的速度也要比GPU慢不少,而且指望在GPU上执行中型和大型机器学习培训。 解决方法: 若是安装的是GPU版本 若是你有一个GPU,你不该该关心AVX的支持,由于大多数昂贵的操做将被分派到一个GPU设备上(除非明确地设置)。在这种状况下,您能够简单地忽略此警告: import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 若是安装的是CPU版本(pip install tensorflow) 1.在代码中加入以下代码,忽略警告: import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 2.编译TensorFlow源码 若是您没有GPU而且但愿尽量多地利用CPU,那么若是您的CPU支持AVX,AVX2和FMA,则应该从针对CPU优化的源构建tensorflow。在这个问题中已经讨论过这个问题,也是这个GitHub问题。 Tensorflow使用称为bazel的ad-hoc构建系统,构建它并非那么简单,但确定是可行的。在此以后,不只警告消失,tensorflow性能也应该改善。 参考: https://stackoverflow.com/questions/47068709/your-cpu-supports-instructions-that-this-tensorflow-binary-was-not-compiled-to-u?answertab=votes#tab-top --------------------- 做者:涛哥带你学编程 来源:CSDN 原文:https://blog.csdn.net/hq86937375/article/details/79696023 版权声明:本文为博主原创文章,转载请附上博文连接!