TensorFlow设置日志级别的几种方式小结
作者:Donald Su 发布时间:2023-07-30 07:57:42
TensorFlow中的log共有INFO、WARN、ERROR、FATAL 4种级别。有以下几种设置方式。
1. 通过设置环境变量控制log级别
可以通过环境变量TF_CPP_MIN_LOG_LEVEL进行设置,TF_CPP_MIN_LOG_LEVEL的不同值的含义分别如下:
Level | Level for Humans | Level Description |
---|---|---|
0 | DEBUG | all messages are logged (Default) |
1 | INFO | INFO messages are not printed |
2 | WARNING | INFO and WARNING messages are not printed |
3 | ERROR | INFO, WARNING, and ERROR messages are not printed |
设置TF_CPP_MIN_LOG_LEVEL的值,屏蔽该级别以及更低级别的日志,如:设置为1,表示屏蔽自己级别的INFO和更低级别的DEBUG日志。
设置环境变量,有两种方式,一种是永久设置,一种临时性设置。
永久设置
修改环境变量:将export TF_CPP_MIN_LOG_LEVEL=1加入到Linux的 ~/.bashrc、~/.zshrc或/etc/profile配置文件中,其中加入到/etc/profile文件是对所有用户都有效。可以在配置文件中设置为1或者2,不建议设置为更高级别的3.
临时性设置
终端中输入export TF_CPP_MIN_LOG_LEVEL="1"
python代码实现方法
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = "1"
ps:os.environ是一个mapping,一系列的键、值对存储在该mapping中,系统环境信息全部存储在该mapping中。如果是print(os.environ['HOME'])这样输出信息,调用的是getenv("HOME")函数,如果环境变量被改变,将会调用putenv()函数进行修改。
python代码中一种错误的设置方法:
os.system("export TF_CPP_MIN_LOG_LEVEL=1") – 错误用法
不能使用的原因 — 不能通过shell的子进程改变shell的环境变量 — 具体可以参考 stackoverflow alex的回答。
2.通过 tf.logging 模块进行设置 – 推荐
python代码中可以添加如下部分代码进行设置。
import tensorflow as tf
tf.logging.set_verbosity(tf.logging.ERROR)
tf.logging.ERROR可以换成 {DEBUG, INFO, WARN, ERROR, FATAL} 中的任何一个。
这里有所不同,设置ERROR,将输出ERROR、FATAL级别日志。
代码测试:
def main(self):
tf.logging.set_verbosity(tf.logging.ERROR)
tf.logging.debug("debug")
tf.logging.info("info")
tf.logging.warning("warning")
tf.logging.error("error")
tf.logging.fatal("fatal")
if __name__ == '__main__':
tf.app.run()
运行上述代码,可以获得ERROR、FATAL级别日志。
来源:https://blog.csdn.net/donaldsy/article/details/99459606
猜你喜欢
- 有些框架本身就支持多配置文件,例如Ruby On Rails,nodejs下的expressjs。python下的Flask虽然本身支持配置
- 上次我重新修改了UBB的转换后,又很多朋友反映日文显示的时候出错了。我在本地测试了一下,结果出现了 Invalid procedure ca
- 一、函数初识1、定义:将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。2、好处:代码重用;保持一致性
- 主要利用了XMLHTTP的一些方法和属性来获取服务器的信息。 以下是全部源代码: &
- 本次爬取网站为opgg,网址为:” http://www.op.gg/champion/statistics”由网站界面可以看出,右侧有英雄
- 前言优化随机森林算法,正确率提高1%~5%(已经有90%+的正确率,再调高会导致过拟合)论文当然是参考的,毕竟出现早的算法都被人研究烂了,什
- 用Python实现出来的机器学习算法都是什么样子呢? 前两期线性回归及逻辑回归项目已发布(见文末链接),今天来讲讲BP神经网络。BP神经网络
- 在 PHP 中表示空的map或空数组都是以空数组形式,在转化为json数据时,会将空数组统一 json 序列化成 [],这样就存在
- 概述np.ones()函数返回给定形状和数据类型的新数组,其中元素的值设置为1。此函数与numpy zeros()函数非常相似。用法np.o
- Python continue语句:当执行到 continue 语句时,将不再执行本次循环中 continue 语句接下来的部分,而是继续下
- 对于个人站长来说,如何能使自己的网站与众不同、充满个性,一直是不懈努力的目标。除了尽量提高页面的视觉效果、互动功能以外,如果能在打开网页的同
- 关于二分法的定义我就不说了,CSDN很多大牛和前辈都已经阐述的很清楚了,直接上代码。首先,先创建一个名称为 binary_search 的函
- Microsoft SQL Server 2000的会话上下文信息使应用程序得以设置二进制值,以便在同一会话或连接上运行的多个批处理、存储过
- python之循环遍历关于循环遍历大家都知道,不外乎for和while,今天我在这写点不一样的循环和遍历。在实践中有时会遇到删除列表中的元素
- 本文实例讲述了Python面向对象之静态属性、类方法与静态方法。分享给大家供大家参考,具体如下:1. 静态属性:在函数前加@property
- 前言本文用Python实例阐述了一些关于进程、线程和协程的概念,由于水平有限,难免出现错漏,敬请批评改正。前提条件熟悉Python基本语法熟
- 一、前言越来越多的网站和App开始为用户搭建签到系统,以此来吸引和留住用户。签到系统是一种轻量、互动性强的营销方式,通过用户签到获取免费权益
- 我们在做接口测试时,除了常见的http接口,还有一种比较多见,就是socket接口,今天讲解下怎么用Python进行websocket接口测
- 前言如同艺术家们用绘画让人们更贴切的感知世界,数据可视化也能让人们更直观的传递数据所要表达的信息。我们今天就分享一下如何用 Python 简
- 安装jieba库教程jieba库是一款优秀的 Python 第三方中文分词库,jieba 支持三种分词模式:精确模式、全模式和搜索引擎模式,