使用tensorflow的自动区分时,确切地说哪些变量会更新每次迭代?
例如,如果我有一个带有状态变量的vanilla RNN,那么自动微分会计算它的梯度并为每个时间步更新它,因为它会造成损失吗?
例如,香草RNN的等式将是:
h_t = X_t W_x + h_ {t-1} W_h + b
tensorflow如何知道更新 W_x , W_h 和 b 的值,但不是 h_ {t-1 } ?
很抱歉,如果我遗漏了一些明显的东西。
答案 0 :(得分:0)
RNN的状态未定义为可训练的张量流变量。它只是图表中用于连接其他节点的节点。相反,权重矩阵W_x
和W_h
明确定义为具有tf.Variable(..., trainable = True)
的张量流变量。梯度是根据可训练变量计算的,因此它们只是在优化过程中更新的对象。