如何解决如何在张量板上针对估算器模型绘制每秒的评估步长
我试图在张量板上绘制每秒评估指标。我试图创建一个会话挂钩来计算指标。以下是我的代码:
class EstimatorValidationStepPerSecCallBack(tf.estimator.SessionRunHook):
def __init__(self,log_dir: str,update_freq: int):
self.steps = 0
self.update_freq = update_freq
self.begin_time = None
validation_summary_dir = os.path.join(log_dir,"validation")
self.validation_summary_writer = tf.summary.create_file_writer(os.path.join(log_dir,"validation"))
# self.validation_summary_writer = tf.compat.v1.summary.FileWriter(logdir=validation_summary_dir)
@overrides
def before_run(self,run_context):
if not self.begin_time:
self.begin_time = time.time()
self.steps += 1
print("YYL hook step")
print(self.steps)
@overrides
def after_run(self,run_context,run_values):
if self.steps % self.update_freq == 0:
current_time = time.time()
global_steps_per_sec = self.update_freq / (current_time - self.begin_time)
self.begin_time = current_time
with self.validation_summary_writer.as_default():
tf.summary.scalar("eval_step/sec",eval_step_per_sec)
这是我将其传递给评估规范的方式:
eval_spec = tf.estimator.EvalSpec(input_fn=data_fn,steps=100,hooks=[EstimatorValidationStepPerSecCallBack(log_dir=summary_dir,update_freq=50)])
tf.estimator.train_and_evaluate(model,train_spec,eval_spec)
最后,我将收到以下错误:
"""
if self._finalized:
> raise RuntimeError("Graph is finalized and cannot be modified.")
E RuntimeError: Graph is finalized and cannot be modified.
我想知道是否有解决此问题的方法?如果不是,是否还有另一种方法可以在张量板上绘制该度量?感谢您的潜在帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。