Mar*_*ame 4 automatic-differentiation tensorflow
TensorFlow使用反向模式自动区分(反向模式AD),如https://github.com/tensorflow/tensorflow/issues/675中所示。
反向模式AD需要一个称为Wengert列表的数据结构-请参阅https://en.wikipedia.org/wiki/Automatic_differentiation#Reverse_accumulation。
但是,使用关键字“ Wengert List”搜索TensorFlow存储库,但没有任何结果。
他们是否使用其他名称,还是摆脱了Wengert List?如果是这样,怎么办?
AD术语非常古老。它是在没有Python且事情复杂的时候发明的。如今,您可以为此使用常规的Python列表。
反向AD的实现在这里gradients
起作用gradients_impl.py
用于存储磁带的数据结构在第532行初始化,它是一个Python队列
# Initialize queue with to_ops.
queue = collections.deque()
Run Code Online (Sandbox Code Playgroud)
然而,使用关键字“Wengert List”搜索 TensorFlow 存储库,却一无所获。
这是因为 TensorFlow 不是基于磁带的 AD,它是基于图的 AD系统。
Wengert 列表是描述操作最初执行顺序的磁带。
还有基于 AD 的源代码转换,该系统的一个很好的例子是Tangent。
如今几乎没有人再使用胶带(温格特列表)。例如检查PyTorch 的功能(第 2 页)。
归档时间: |
|
查看次数: |
858 次 |
最近记录: |