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


猜你喜欢
- csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格就可以存储为csv文件,文件内容是
- 谷歌的potobuf不说了,它很牛B,但是对客户端对象不支持,比如JavaScript就读取不了。Jil很牛,比Newtonsoft.Jso
- 两年前,我们开发了一套基于Flash的文件(主要是图片)上传RIA应用,提供给阿里巴巴的用户使用。如果你使用过Wordpress或flick
- 本文实例讲述了Python编程实现及时获取新邮件的方法。分享给大家供大家参考,具体如下:#-*- encoding: utf-8 -*-im
- 本文实例讲述了python批量生成本地ip地址的方法。分享给大家供大家参考。具体分析如下:这段代码用于在本地计算机上生成本地ip地址绑定到网
- 环境springboot、mybatisPlus、mysql8mysql8(部署在1核2G的服务器上,很卡,所以下面的数据条数用5000,太
- 一、直接连接,不封装到工具类中,主要步骤:先导包:mysql-connector-java-5.0.8-bin.jar(点击跳转到下载界面)
- pycharm简介PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语
- 微信支付、支付宝等第三方支付,需要和银联、网联对接,有清算机构和银行的交易处理通道成本。下文说的费率是指支付手续费的费率,在用户支付的时候,
- 下午的时候,配好了OpenCV的Python环境,OpenCV的Python环境搭建。于是迫不及待的想体验一下opencv的人脸识别,如下文
- 本文实例讲述了wxPython主框架的简单用法,分享给大家供大家参考。具体如下:程序代码如下:import wx class MyApp(w
- 1、异常出现的场景.:在使用Hibernate做为项目持久层的情况下,需要对某一张表进行一个扩展,扩展操作便是在该表上创建一个触发器。将表中
- 不管是业务数据分析 ,还是数据建模。数据处理都是及其重要的一个步骤,它对于最终的结果来说,至关重要。今天,就为大家总结一下 “Pandas数
- 平时比较常用的时间、字符串、时间戳之间的互相转换,虽然常用但是几乎每次使用时候都喜欢去搜索一下用法;本文将作为一个笔记,整理一下三者之间的
- 今天我们分享的主要目的就是通过在 Python 中使用命令行和配置文件来提高代码的效率Let's go!我们以机器学习当中的调参过程
- 刚才运行了一段代码,来查看Request.ServerVariables里面有多少值,看了一下,共50个!代码<%=Request.S
- Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到
- TCP客户端程序开发1. 开发 TCP 客户端程序开发步骤回顾创建客户端套接字对象和服务端套接字建立连接发送数据接收数据关闭客户端套接字2.
- 功能函数// 绘制圆角矩形void DrawRotatedRectChamfer(cv::Mat mask,const cv::Rotate
- 今天select * from 表名 where to_days(时间字段名) = to_days(now());昨天SELECT * FR