TenSorFlow警告 Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX

运行环境 : python 3.6.0

第三方库 : tensorflow 1.9.0

 

问题 :

       安装的 tensorflow 是 CPU 版本的 , 使用的 pip install tensorflow 清华镜像 , 安装一切顺利 , 程序也可以正常跑 , 问题是在程序运行过程中会本出来这么一句红色字体 , 虽然程序能跑 , 但是心里总觉得出现这种东西就是特别的不舒服 ...

2019-07-25 09:00:48.684950: I T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:141]
Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2

       什么意思呢 ?

       是这么个意思 : 您的CPU支持TensorFlow二进制文件未编译为使用的指令:AVX2

       原因 : 除了通常的算数和逻辑 , 现代 CPU 提供了很多低级指令 , 成为扩展 , 例如 , SSE2 , SSE4 , AVX 等

AVX指令集是Sandy Bridge和Larrabee架构下的新指令集 。AVX是在之前的128位扩展到和256位的单指令多数据流。而Sandy Bridge的单指令多数据流演算单元扩展到256位的同时数据传输也获得了提升,所以从理论上看CPU内核浮点运算性能提升到了2倍。

Intel AVX指令集,在单指令多数据流计算性能增强的同时也沿用了的MMX/SSE指令集。不过和MMX/SSE的不同点在于增强的AVX指令,从指令的格式上就发生了很大的变化。x86(IA-32/Intel 64)架构的基础上增加了prefix(Prefix),所以实现了新的命令,也使更加复杂的指令得以实现,从而提升了x86 CPU的性能 。

       当然 :

这个仅仅限制于CPU 。 如果你有一个 GPU , 这不是你该担心的事情 , 因为大多数昂贵的操作一般都会被分到 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性能也应该改善。

       其实呢 , 这并不是错误 , 只是个警告 , 可以用 os 模块来设置警告等级 , 就 OK

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值