TensorFlow中的Wengert列表在哪里?

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?如果是这样,怎么办?

Yar*_*tov 5

AD术语非常古老。它是在没有Python且事情复杂的时候发明的。如今,您可以为此使用常规的Python列表。

反向AD的实现在这里gradients起作用gradients_impl.py

用于存储磁带的数据结构在第532行初始化,它是一个Python队列

# Initialize queue with to_ops.
queue = collections.deque()
Run Code Online (Sandbox Code Playgroud)


pro*_*sti 5

然而,使用关键字“Wengert List”搜索 TensorFlow 存储库,却一无所获。

这是因为 TensorFlow 不是基于磁带的 AD,它是基于图的 AD系统。

Wengert 列表是描述操作最初执行顺序的磁带。

还有基于 AD 的源代码转换,该系统的一个很好的例子是Tangent

如今几乎没有人再使用胶带(温格特列表)。例如检查PyTorch 的功能(第 2 页)。


归档时间:

查看次数:

858 次

最近记录:

7 年,8 月 前