TensorFlow1.15.2调用gen_logging_ops._image_summary报错如何解决?
TensorFlow 1.15.2 图像摘要构建报错解决方案
问题原因
你调用的gen_logging_ops._image_summary是TensorFlow内部私有接口,这类接口命名以下划线开头,不会对外做版本兼容保证,在1.15.2版本中该接口已被重构移除,所以会触发属性不存在的报错。你后续尝试修改为gen_logging_ops.summary.image也不成立,因为gen_logging_ops模块下不存在summary子模块。
正确实现代码
直接使用TensorFlow 1.x公开的图像摘要API tf.summary.image即可完成需求,修改后的完整代码如下:
import tensorflow as tf from tensorflow.python.framework import ops as _ops def build_image_summary(): log_image_data = tf.placeholder(tf.uint8, [None, None, 3]) log_image_name = tf.placeholder(tf.string) # 替换为1.x官方公开的图像摘要API log_image = tf.summary.image(log_image_name, tf.expand_dims(log_image_data, 0), max_images=1) _ops.add_to_collection(_ops.GraphKeys.SUMMARIES, log_image) return log_image, log_image_data, log_image_name
验证说明
tf.summary.image接收的第二个参数要求为四维张量,格式为[batch_size, height, width, channels],你原有代码中使用tf.expand_dims给三维图像增加batch维度的逻辑完全符合要求,无需调整。- 生成的摘要对象可以正常加入
SUMMARIES集合,后续使用tf.summary.merge_all即可统一汇总所有摘要,用于TensorBoard日志写入。
内容的提问来源于stack exchange,提问作者sinG20
相关产品推荐
相关产品推荐

