解决TF1.X到TF2报错问题AttributeError: 'ResourceSummaryWriter' object has no attribute 'add_summary'
说明:在机器学习时有很多代码是基于tensorflow1.X的,但是TF1.X到TF2.X变化较大很多代码已经不在适用,记录一下我解决问题的过程
本机环境
tensorflow 2.0.0b1
window 10
python3.7
————————————————
解决过程
原来的报错tf1.0代码如下
class Logger(object):
def __init__(self, log_dir):
self.writer = tf.summary.FileWriter(log_dir)
def scalar_summary(self, tag, value, step):
summary = tf.Summary(value=[tf.compat.v1.Summary.Value(tag=tag, simple_value=value)])
self.writer.add_summary(summary, step)
首先报错AttributeError: module ‘tensorboard.summary._tf.summary‘ has no attribute ‘FileWriter‘
新版要替换成
# self.writer = tf.summary.FileWriter(log_dir) # 老版tensorflow使用这个方法名
self.writer = tf.summary.create_file_writer(log_dir) # tensorflow2.0版本
然后就报AttributeError: 'ResourceSummaryWriter' object has no attribute 'add_summary'
tf2.X版本要改为
#self.writer.add_summary(summary, step) #原旧版代码
with self.writer.as_default():
tf.summary.scalar('随便写个就行',summary,step=step)
self.writer.flush()
最终代码变为
class Logger(object):
def __init__(self, log_dir):
self.writer = tf.summary.create_file_writer(log_dir) ##tensorflow版本2.0.0b1
#self.writer = tf.summary.FileWriter(log_dir)
def scalar_summary(self, tag, value, step):
summary = tf.compat.v1.Summary(value=[tf.compat.v1.Summary.Value(tag=tag, simple_value=value)])
with self.writer.as_default():
tf.summary.scalar('i not know',summary,step=step)
self.writer.flush()
参考链接
链接: stackoverlflow问题.
链接:Tensorflow 2.0 的新特性介绍——最详细版本.
其他关于scalar讲解链接
https://blog.csdn.net/Li_haiyu/article/details/89646820.