自定义训练循环中记录tf.variable

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义训练循环中记录tf.variable相关的知识,希望对你有一定的参考价值。

我已经在TensorFlow中为TD(Lambda)编写了一个自定义训练循环,我想创建一个日志来存储一些在每个时期计算的变量。]​​>

在numpy中,我会写类似list.append(variable_that_I_want_to_save)在每个时代结束时

但是在急切的执行中,这是不可能的。

如何保存在迭代过程中tf.function中的tf.Variable值?

非常感谢您的努力答复-我想这肯定是一件微不足道的事情。

PS:我应该补充说,训练是在一个类中进行的,所以tf.concat无法解决问题,因为我无法反复将级联张量分配给training_loop类的实例变量...

这是我的工作的伪代码:

class Trainer:
   def __init__(self, model):
      self.model = model

   def train(xs,ys,lambda):
      for x,y in zip(xs,ys):
         learn(x,y,lambda)

   def learn(x,y,lambda):
      err = y - self.model(x)
      model.apply_weights( grad(err) * self.custom_alpha( self.model.weights )

   def custom_optimizer(  weights ):
      x = some operations with weights 
      alpha = some operation with x
      return alpha

由于NDA,我无法分享更多具体信息,但我要记录的是x所取的值

我已经在TensorFlow中为TD(Lambda)编写了一个自定义训练循环,我想创建一个日志,该日志存储一些在每个时期计算的变量。在numpy中,我会写...

答案

这样的东西对您有用吗?我向该类添加了一个属性,它将存储日志。

以上是关于自定义训练循环中记录tf.variable的主要内容,如果未能解决你的问题,请参考以下文章

具有自定义训练循环的 Tensorboard Graph 不包括我的模型

Tensorflow 2 中用于自定义训练循环的 Tensorboard

Tensorflow 2.0的自定义训练循环的学习率

如何在 TF 2.0 / 1.14.0-eager 和自定义训练循环(梯度磁带)中执行梯度累积?

TensorFlow 辨异 —— tf.placeholder 与 tf.Variable

如何使用混淆矩阵计算自定义训练的 spacy ner 模型的整体准确性?