自定义训练循环中记录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
如何在 TF 2.0 / 1.14.0-eager 和自定义训练循环(梯度磁带)中执行梯度累积?