Lista de operaciones diferenciables en Tensorflow

¿Hay una lista maestra de operaciones de Tensorflow que sean diferenciables (es decir, se auto-diferenciarán)?

Dos otras formas de express esto:

  • Lista de operaciones que no tienen ops.NoGradient set.
  • Lista de operaciones que no activarán LookupError .

Por ejemplo, asumo que todas las operaciones de Control Flow no son diferenciables (por ejemplo, tf.where ). ¿Cómo podría encontrar esto además de ejecutarlos manualmente a través de tf.gradients para ver si lanzan el LookupError ?

“El sentido común” no es una respuesta válida.

Gracias.

EDITAR:

tf.where sea ​​diferenciable por lo que mis intuiciones están mal. Quizás la pregunta correcta aquí es qué operaciones en Tensorflow no son diferenciables.

Gracias.

No, no hay una lista (puede ser el primero en crearla). También que yo sepa, la documentación de cada función tampoco lo dice ( tf.size no es diferenciable pero no lo dice).

Además de la forma en que sugirió, también puede extraer estos datos del código fuente. Por ejemplo, todas las operaciones que tienen el gradiente implementado tienen @ops.RegisterGradient delante de la statement del método. Para operaciones que no tienen gradiente, tendrá ops.NotDifferentiable( hay ops.NotDifferentiable(

No relacionado, pero probablemente útil .

He ideado la lista completa de operaciones diferenciables y no diferenciables utilizando el código de Python.

Encontrarás la lista compacta aquí. También el código que lo generó.

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