首页 文章

Tensorflow:训练步骤的延迟变量

提问于
浏览
2

在Tensorflow中,我想在下一个训练步骤中使用上一个训练步骤中我网络的一些变量 . 更具体地说,我想在训练期间计算二次成本函数,其利用来自先前训练步骤的一些网络张量 .

这个问题可以用RNN代码的片段来回答,但我还没弄清楚如何 . 我正在调查How can I feed last output y(t-1) as input for generating y(t) in tensorflow RNN?Tensorflow: How to pass output from previous time-step as input to next timestep以及TensorFlow: Remember LSTM state for next batch (stateful LSTM) .

假设h是具有多个先前层的神经网络的最后一层,例如:

h = tf.nn.relu(tf.matmul(h_previous,W_previous))

如何在训练期间处理样本后保留张量h(例如将其保存到h_old),以便我可以在下一个训练步骤中使用它来进行如下计算:

d = tf.sub(h,h_old)

在该示例中,用当前训练样本更新h,并且h_old是在先前训练样本上计算的张量 . 关于这个问题的一些想法会很棒!

1 回答

  • 0

    h_old 变成一个变量怎么样?

    h_old = tf.Variable(tf.zeros(<some-shape>))
    
    .
    .
    
    h = tf.nn.relu(tf.matmul(h_previous,W_previous))
    d = tf.sub(h,h_old)
    h_old.assign(h)
    

相关问题