在tensorflow中实现屏蔽输出的log信息

在TensorFlow中我们可以使用日志信息(log)来记录和追踪代码运行过程中的各种信息,这对于调试和优化代码非常有用。但由于TensorFlow输出大量信息的log,可能会造成输出信息混乱的问题。因此,本文将介绍如何实现屏蔽TensorFlow输出的log信息。

方法一:利用Python的日志模块

第一种方法是使用Python标准库中的logging模块来控制TensorFlow的日志信息输出。

在TensorFlow中,我们可以使用如下代码来实现日志输出:

import tensorflow as tf
tf.logging.set_verbosity(tf.logging.INFO)

其中,tf.logging.set_verbosity()函数用来控制TensorFlow输出的日志信息等级,常见的等级包括INFO、DEBUG和ERROR等。但是,我们可以通过调用Python的logging模块来控制TensorFlow输出日志信息等级,轻松实现屏蔽TensorFlow输出的log信息。

具体操作步骤如下:

  1. 导入logging模块
import logging
  1. 设置logging模块的日志等级
logging.getLogger('tensorflow').setLevel(logging.ERROR)

其中,'tensorflow'是TensorFlow默认使用的模块名称,通过设置日志等级可以屏蔽一定等级以下的日志信息输出,例如,上述设置将屏蔽INFO、DEBUG等级的日志信息输出。

  1. 查看日志信息
tf.logging.info("This is a info message")
tf.logging.error("This is a error message")

通过以上设置,我们可以轻松控制TensorFlow输出日志信息的等级,实现屏蔽TensorFlow输出的log信息。

方法二:利用TensorFlow的日志记录器

第二种方法是利用TensorFlow的日志记录器(tf.logging.Logger)实现屏蔽TensorFlow输出的log信息。与方法一不同的是,这种方法并不需要依赖Python的logging模块。

具体操作步骤如下:

  1. 创建日志记录器
import tensorflow as tf
logger = tf.logging.Logger("my_logger")

其中,"my_logger"是我们自定义的日志记录器名称。

  1. 设置日志等级
logger.setLevel(tf.logging.ERROR)
  1. 查看日志信息
logger.info("This is a info message")
logger.error("This is a error message")

通过以上设置,我们同样可以轻松实现屏蔽TensorFlow输出日志信息的效果。

示例一:

import logging
import tensorflow as tf

# 设置日志输出等级
logging.getLogger('tensorflow').setLevel(logging.ERROR)

# 输出日志
tf.logging.info("This is an info message")
tf.logging.debug("This is a debug message")
tf.logging.error("This is an error message")

以上代码将输出如下信息:

2019-04-08 11:02:37.375672: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-04-08 11:02:37.482534: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties: 
name: GeForce GTX 1080 major: 6 minor: 1 memoryClockRate(GHz): 1.8685
pciBusID: 0000:08:00.0
totalMemory: 8.00GiB freeMemory: 6.60GiB
...
2019-04-08 11:02:40.122334: I tensorflow/compiler/xla/service/service.cc:150] XLA service 0x7fe372000750 executing computations on platform CUDA. Devices:
...
2019-04-08 11:02:40.126375: I tensorflow/compiler/xla/service/service.cc:158]   StreamExecutor device (0): GeForce GTX 1080, Compute Capability 6.1
2019-04-08 11:02:40.127971: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Adding visible gpu devices: 0
2019-04-08 11:02:40.375124: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-04-08 11:02:40.375250: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988]      0 
2019-04-08 11:02:40.375296: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0:   N 
2019-04-08 11:02:40.375515: I tensorflow/compiler/xla/service/service.cc:150] XLA service 0x7fe372000750 executing computations on platform CUDA. Devices:
...
2019-04-08 11:02:40.385415: I tensorflow/compiler/xla/service/service.cc:158]   StreamExecutor device (0): GeForce GTX 1080, Compute Capability 6.1
2019-04-08 11:02:41.196334: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Adding visible gpu devices: 0
...
2019-04-08 11:02:41.395196: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Adding visible gpu devices: 0
2019-04-08 11:02:41.395312: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-04-08 11:02:41.395356: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988]      0 
2019-04-08 11:02:41.395405: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0:   N 
2019-04-08 11:02:41.472729: W tensorflow/core/framework/op_kernel.cc:1279] OP_REQUIRES failed at transpose_op.cc:160 : Invalid argument: transpose expects a vector of size 4. But input(0) is a vector of size 8
2019-04-08 11:02:41.472802: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Invalid argument: transpose expects a vector of size 4. But input(0) is a vector of size 8
     [[{{node tower_0_4/transpose_4}}]]
2019-04-08 11:02:41.536973: W tensorflow/core/framework/op_kernel.cc:1279] OP_REQUIRES failed at transpose_op.cc:160 : Invalid argument: transpose expects a vector of size 4. But input(0) is a vector of size 8
2019-04-08 11:02:41.537051: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Invalid argument: transpose expects a vector of size 4. But input(0) is a vector of size 8
     [[{{node tower_0_4/transpose_4}}]]
2019-04-08 11:02:41.580132: W tensorflow/core/framework/op_kernel.cc:1279] OP_REQUIRES failed at transpose_op.cc:160 : Invalid argument: transpose expects a vector of size 4. But input(0) is a vector of size 8
2019-04-08 11:02:41.580203: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Invalid argument: transpose expects a vector of size 4. But input(0) is a vector of size 8
     [[{{node tower_0_4/transpose_4}}]]

可以看到,由于TensorFlow默认输出等级为INFO,因此程序输出了大量的日志信息。但是由于我们设置了日志等级为ERROR,因此只有ERROR等级的日志信息被输出。这也就实现了屏蔽TensorFlow输出的log信息。

示例二:

import tensorflow as tf

# 创建自定义日志记录器
logger = tf.logging.Logger("my_logger")

# 设置日志等级
logger.setLevel(tf.logging.ERROR)

# 输出日志信息
logger.info("This is an info message")
logger.debug("This is a debug message")
logger.error("This is an error message")

以上代码的输出结果与示例一相同,因此这里不再重复给出。可以看到,使用TensorFlow提供的日志记录器同样可以实现屏蔽TensorFlow输出日志信息的效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在tensorflow中实现屏蔽输出的log信息 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • MongoDB多条件模糊查询示例代码

    下面是关于MongoDB多条件模糊查询的详细攻略。 1. 简介 MongoDB是开源NoSQL数据库的一种,它存储数据的方式不同于传统的关系型数据库,而是采用了文档嵌套的方式存储数据。MongoDB的模糊查询与关系型数据库的模糊查询类似,但是它支持更多的查询方式。 2. 多条件模糊查询示例 MongoDB的多条件查询可以使用$and、$or、$nor三个操作…

    人工智能概论 2023年5月25日
    00
  • Pytorch中的自动求梯度机制和Variable类实例

    Pytorch中的自动求梯度机制和Variable类实例是深度学习中非常重要的概念。在本篇文章中,我们将介绍Pytorch的自动求梯度机制和Variable类实例,以及如何利用它们来构建深度学习模型。 自动求梯度机制 自动求梯度机制是指Pytorch可以自动计算张量(Tensor)的梯度。在深度学习中,梯度在反向传播(backpropagation)中起着非…

    人工智能概论 2023年5月25日
    00
  • python和php学习哪个更有发展

    首先,需要明确python和php都是目前非常热门的编程语言,都具有广泛的应用场景。如果想要选择其中一种语言进行学习,需要考虑自己的兴趣、职业规划以及市场需求等多个因素。下面就为大家提供一些精准的攻略和示例说明: 1. Python 1.1 优点 Python语法简单易懂,容易上手; Python有广泛的应用场景,如人工智能、数据分析、网络爬虫等; Pyth…

    人工智能概览 2023年5月25日
    00
  • pytorch MSELoss计算平均的实现方法

    PyTorch中的MSELoss(均方误差损失)用于计算实际输出与期望输出之间的平均平方误差。下面是计算平均MSELoss的实现方法。 均方误差损失 均方误差损失在回归问题中非常常用。假设我们有n个样本,第i个样本的期望输出为$y_i$,实际输出为$\hat{y_i}$,那么它们之间的平均平方误差为: $$MSE = \frac{1}{n} \sum_{i=…

    人工智能概论 2023年5月25日
    00
  • 利用consul在spring boot中实现分布式锁场景分析

    下面我将为你详细讲解如何利用consul在Spring Boot中实现分布式锁的攻略。 需求分析 在分布式系统中,如果多个节点同时操作同一份数据,就会出现数据竞争的问题,为了避免这种情况,我们需要实现分布式锁来控制多个节点的并发访问。 consul是一款分布式服务发现和配置工具,可以满足我们实现分布式锁的需求。在Spring Boot中,我们可以通过使用Co…

    人工智能概览 2023年5月25日
    00
  • 在Laravel中使用MongoDB的方法示例

    下面是关于在Laravel中使用MongoDB的方法示例的完整攻略。 简介 MongoDB是一个非关系型数据库,它与传统的关系型数据库不同,它支持复杂的数据结构和更强大的查询语言。Laravel是一个流行的PHP框架,它提供了最基本的ORM和查询构建器来支持多种关系型数据库。但是,如果你需要在Laravel中使用MongoDB,你需要一些额外的库和工具。 步…

    人工智能概论 2023年5月25日
    00
  • python3实现SMTP发送邮件详细教程

    Python3实现SMTP发送邮件详细教程 本文将介绍如何使用Python3通过SMTP发送邮件。SMTP(Simple Mail Transfer Protocol)是一种用于发送电子邮件的协议。Python3作为一种强大的编程语言,提供了不同的库来实现SMTP邮箱的发送。在本文中,我们将使用smtplib库来实现SMTP发送邮件。 步骤1:连接SMTP服…

    人工智能概览 2023年5月25日
    00
  • python pyecharts库的用法大全

    当我们想要在 Python 中展示数据可视化时,Pyecharts 库是一个非常不错的选择。它是基于 ECharts 核心的一个图表库,提供了很多种类的可视化图表,可以轻松实现各种各样的可视化需求。 安装 Pyecharts Pyecharts 可以通过 pip 进行安装: pip install pyecharts 目前,Pyecharts 支持的 Pyt…

    人工智能概论 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部