zoukankan      html  css  js  c++  java
  • TensorFlow中屏蔽warning的方法

    问题

    使用sudo pip3 install tensorflow安装完CPU版tensorflow后,运行简单的测试程序,出现如下警告:

    I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA

    分析

    报错的大概意思是:你的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。

    1. 如果安装的是GPU版本 如果你有一个GPU,你不应该关心AVX的支持,因为大多数昂贵的操作将被分派到一个GPU设备上(除非明确地设置)。在这种情况下,您可以简单地忽略此警告(采用下面的任一方法)
    2. 如果您没有GPU并且希望尽可能多地利用CPU,那么如果您的CPU支持AVX,AVX2和FMA,则应该从针对CPU优化的源构建tensorflow。

    针对CPU优化的源构建tensorflow感觉有点麻烦(其实是我不会),对性能要求不高的情况下,可以选择屏蔽警告。

    解决方法

      TensorFlow的日志级别分为以下三种:         

    1.  TF_CPP_MIN_LOG_LEVEL = 1         //默认设置,为显示所有信息                
    2. TF_CPP_MIN_LOG_LEVEL = 2         //只显示error和warining信息                
    3. TF_CPP_MIN_LOG_LEVEL = 3         //只显示error信息

    所以,当TensorFlow出现警告信息,又不想让警告信息显示时,可进行如下设置:

    方法一

    python环境下通过在python文件中添加如下两行代码,设置TensorFlow日志输出级别。

    import os
    os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"

    方法二

    在linux环境下,我们可以通过linux命令,屏蔽掉TensorFlow的warning:

    1、暂时屏蔽warning:

    在linux终端中输入命令:export TF_CPP_MIN_LOG_LEVEL=2,当该终端关闭,既失效;
    2、永久屏蔽warning:
    修改/etc/profile文件,在该文件中加入:
    export TF_CPP_MIN_LOG_LEVEL=2

    但是修改后需要重启系统或者使用source  /etc/profile命令,使修改后的profile文件生效。

    参考链接:

    1、https://blog.csdn.net/guilutian0541/article/details/81213764

    2、https://www.cnblogs.com/suizhikuo/p/9935554.html

  • 相关阅读:
    机器学习-数据归一化及哪些算法需要归一化
    目标检测中的mAP
    在Ubuntu内制作自己的VOC数据集
    目标检测算法之YOLOv3
    目标检测算法之YOLOv1与v2
    详谈Windows消息循环机制
    位和字节以及各类编码简述
    C++ 基础知识(一)
    Python 爬取高清桌面壁纸
    WPF 动画执行后属性无法修改
  • 原文地址:https://www.cnblogs.com/lfri/p/10425631.html
Copyright © 2011-2022 走看看