tf.logging用法

用来记录模型训练过程的一些参数。

常用的几项:

tf.logging.set_verbosity(tf.logging.INFO)
设计日志级别. 控制那些日志打印到屏幕上。


tf.logging.info(msg, *args, **kwargs)
记录INFO级别的日志. args 是配合msg中的占位符用的. 比如 info("I have been in love with %s for %d years.","yichu",7)


tf.logging.log_every_n( level, msg, n, *args)
改行代码每执行n次输出一次. 打印的时机分别是(1, n+1, 2n+1,…).
 

举例说明:

def main():
    tf.logging.set_verbosity(tf.logging.INFO)
    tf.logging.info("I have been in love with %s for %d years.", "yichu", 7)
    # 因为set_verbosity这里只设置了INFO级别的日志,所以只会打印上一条I have...years这一条,
    # 不会打印下面这一行this is ... info这一条,如果希望输出INFO和DEBUG2个级别的信息,
    # 那么需要再次调用tf.logging.set_verbosity(tf.logging.DEBUG)才可以打印info和debug2个级别。
    tf.logging.debug("this is a debug info")

    train_op = tf.train.GradientDescentOptimizer(learning_rate=LEARNING_RATE).\
        minimize(loss_tensor, global_step=tf.train.create_global_step())
    with tf.Session() as sess:
        ...
        tf.logging.log_every_n(tf.logging.INFO, "np.mean(loss_evl)= %f at step %d", 100, np.mean(loss_evl),
                               sess.run(tf.train.get_global_step()))

    # 注意,最后的tf.logging.log_every_n是每隔100次打印一次,打印的日志如下:
    # INFO:tensorflow:np.mean(loss_evl)= 1.396970 at step 1
    # INFO:tensorflow:np.mean(loss_evl)= 1.221397 at step 101
    # INFO:tensorflow:np.mean(loss_evl)= 1.061688 at step 201

 

 

参考博客:

https://blog.csdn.net/chuchus/article/details/79726446

### TensorFlow 中 `tf_logging` 导入错误解决方案 在 TensorFlow 的不同版本中,模块结构可能会发生更改。对于 `ImportError: cannot import name 'tf_logging' from 'tensorflow.python.platform'` 这一问题,通常是因为所使用的 TensorFlow 版本已经废弃了该模块。 #### 1. TensorFlow 版本差异分析 自 TensorFlow 2.x 起,许多旧版 API 和模块被移除或重构。具体来说,在较新的 TensorFlow 版本中,`tf.logging` 已经被弃用并替换为 Python 原生的日志库 `absl-py` 或者 TensorFlow 提供的新日志工具[^1]。因此,如果尝试从 `tensorflow.python.platform` 导入 `tf_logging` 将会失败。 #### 2. 替代方法实现相同功能 为了替代 `tf_logging` 功能,可以采用如下方式: - **使用 absl 日志** Abseil 是 Google 开发的一个 C++ 库,其 Python 实现提供了强大的日志记录能力。TensorFlow 推荐使用此库来代替已废弃的 `tf.logging` 模块。 ```python from absl import logging as absl_logging absl_logging.info("This is an info message.") absl_logging.warn("This is a warning message.") ``` - **切换到新 TensorFlow 日志接口** 如果你仍然希望依赖于 TensorFlow 自身的日志机制,则可以直接调用内置函数而无需单独导入 `tf_logging`: ```python import tensorflow as tf tf.get_logger().setLevel('INFO') tf.compat.v1.logging.info("Logging with TF logger") ``` 上述代码片段展示了如何设置全局日志级别以及发布一条信息级别的消息[^2]。 #### 3. 验证环境配置正确性 除了调整代码逻辑外,还需确认当前开发环境中安装的是预期版本号的 Tensorflow 。可以通过执行下面命令检查实际加载的包详情: ```bash pip show tensorflow ``` 或者直接通过 python 查看运行时引入的具体路径: ```python import tensorflow as tf print(tf.__version__) print(tf.__path__) ``` #### 4. 升级/降级至匹配版本 假如项目确实需要保留对老特性(如 `tf_logging`)的支持,则考虑回退到支持这些特性的最后一个稳定发行版——通常是某个特定的小数点前缀系列下的子版本;反之亦然,当决定拥抱最新改进成果之时,请确保全面迁移到推荐做法上,并同步更新所有关联依赖项。 --- ### 总结 针对 `ImportError: cannot import name 'tf_logging'` 错误,建议依据目标框架版本选用合适的日志处理手段,同时注意保持软件栈一致性以规避潜在冲突风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值