Tensorflow中的可区分操作列表

Oli*_*ilO 11 python tensorflow

是否存在可区分的Tensorflow操作的主列表(即,将自动区分)?

另外两种表达方式:

  • 没有ops.NoGradient设置的操作列表.
  • 不会触发的操作列表LookupError.

例如,我假设所有控制流操作都不可区分(例如tf.where).除了通过手动运行它们tf.gradients以查看它们是否抛出它之外,我将如何找到它LookupError.

"常识"不是一个有效的答案.

谢谢.

编辑:

tf.where是可区分的,所以我的直觉是错误的.也许这里正确的问题是Tensorflow中的哪些操作不可区分.

谢谢.

Mai*_*tta 13

我使用 python 代码设计了完整的可微分和不可微分操作列表。

您将在此处找到压缩列表。还有生成它的代码。

https://github.com/Mainak431/List-of-Differentiable--OPs-and-Non-differentiable-OPs--in-Tensorflow

  • 它的大量文本。答案将是巨大的。近 800 多行。 (2认同)

Sal*_*ali 6

不,没有列表(您可以第一个创建它)。据我所知,每个函数的文档也没有告诉它(tf.size不可区分但没有告诉它)。

除了建议的方式之外,您还可以从源代码中提取此数据。例如,所有已实现渐变的操作都@ops.RegisterGradient在方法声明的前面。对于没有渐变的操作,您将拥有ops.NotDifferentiable(

没有关系,但可能有帮助