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

警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA问题:安装TensorFlow(CPU版本),使用pipinstalltensorflow安装,安装一切顺利,但是在跑一个简单的程序时,遇到如下情况:大概意思是:你的CPU支持AVX扩展,但是你安装的TensorFlow版本无法编译使用。原因:除了通常的算术和逻辑,现代CPU提供了许多低级指令,称为扩展,例如,SSE2,SSE4,AVX等来自维基百科:高级矢量扩…

大家好,又见面了,我是你们的朋友全栈君。

问题:

安装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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139050.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Nginx加密以及反向代理「建议收藏」

    Nginx加密以及反向代理「建议收藏」一、https加密算法http协议在传输过程中使用的是明文,如果传输的是用户名和密码等信息就不安全。https就是在原来http协议中加上ssl算法,来对传输的数据进行加密。https加密的核心就是通过秘钥来实现。秘钥(加密算法)的分类:1.对称算法(加密和解密用一样的密码):AES,DES(适合单机加密)2.非对称算法(公钥和私钥):RSA,DSA3.信息摘要:md5,sha256…

  • 基于单片机的功放protues_基于Proteus的音频放大器电路设计与仿真详解.doc[通俗易懂]

    基于单片机的功放protues_基于Proteus的音频放大器电路设计与仿真详解.doc[通俗易懂]毕业论文学生姓名尹有友学号171107078学院物理与电子电气工程学院专业电子信息工程题目基于Proteus的音频放大电路设计与仿真指导教师付浩副教授/学士2015年5月论文原创性声明内容本人郑重声明:本论文是我个人在导师指导下进行的研究工作及取得的研究成果。本论文除引文外所有实验、数据和有关材料均是真实的。尽我所知,除了文中特别加以标注和致谢的地方外…

  • P2P网贷源码[通俗易懂]

    P2P网贷源码[通俗易懂]急求p2p网贷源码,java语言编写。

  • 大数据Hadoop生态圈各个组件介绍(详情)

    大数据Hadoop生态圈各个组件介绍(详情)Hadoop架构HDFS(HadoopDistributedFIleSystem)分布式文件系统,解决分布式存储MapReduce分布式计算框架TARN分布式资源管理系统在Hadoop2.x中引入Common支持所有其他模块的公共工具程序Hadoop分布式文件系统-HDFS架构HDFS采用master/slave架构master:NameNodeslave:DataNodeHDFS组成角色及其功能Client:客户端NameNode(NN):元数据节点管理文件系统的

  • android:强大的图片下载和缓存库Picasso

    android:强大的图片下载和缓存库Picasso

  • HS数据库_hsqldb

    HS数据库_hsqldb前言在对dao层写测试类的时候,我们需要一个测试数据库,一般我们会是专门建立一个真实的测试数据库,但是有了HSQLDB事情就变得简单了起来。正题一、简介:hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议,如果你是使用Java编程的话,前言在对dao层写测试类的时候,我们需要一个测试数据库,一般我们会是专门建立一个真实的测试数据库,但是有了HSQLDB事情就变…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号