【发布时间】:2020-06-04 17:59:31
【问题描述】:
我在 TensorFlow 中为 TD(Lambda) 编写了一个自定义训练循环,我想创建一个日志来存储在每个 epoch 期间计算的一些变量。
在 numpy 中,我会写类似 list.append(variable_that_I_want_to_save) 在每个纪元结束时
但是在 tf eager execution 中这是不可能的。
如何保存 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
由于保密协议,我无法分享更具体的信息,但我想记录的是 x 采用的值
【问题讨论】:
-
请添加自定义训练循环的代码
-
嗨,基本上,培训班是这样的:
标签: python tensorflow machine-learning logging