在哪里可以找到 Tensorflow(python API)中的反向传播(通过时间)代码?或者使用其他算法?
例如,当我创建 LSTM 网络时。
TensorFlow 中的所有反向传播都是通过自动区分网络前向传递中的操作,并添加显式操作来计算网络中每个点的梯度来实现的。一般实现可以在tf.gradients() https://github.com/tensorflow/tensorflow/blob/e1c017624fd6bd8562c1da27e0014b32f389b524/tensorflow/python/ops/gradients.py#L307,但使用的特定版本取决于 LSTM 的实现方式:
- 如果 LSTM 被实现为有限数量时间步长的展开循环,则通常的方法是通过时间截断反向传播,它使用以下算法:
tf.gradients()
以相反方向构建展开的反向传播循环。
- 如果 LSTM 被实现为
tf.while_loop()
,它使用额外的支持来区分循环control_flow_grad.py https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/control_flow_grad.py.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)