TensorFlow es una biblioteca Python de código abierto diseñada por Google para desarrollar modelos de aprendizaje automático y redes neuronales de aprendizaje profundo.
jacobian() se usa para calcular el jacobiano usando operaciones registradas en el contexto de esta cinta.
Sintaxis: jacobian(destino, fuente, gradientes_desconectados, iteraciones_paralelas, uso_experimental_pfor)
Parámetros:
- target: Es un Tensor de rango mínimo 2.
- fuente: Es un Tensor de rango mínimo 2.
- unconnected_gradients (opcional): su valor puede ser cero o ninguno. El valor predeterminado es Ninguno.
- paralelo_iteraciones (opcional): se utiliza para controlar las iteraciones paralelas y el uso de la memoria.
- experimental_use_pfor(opcional): Es un booleano con valor predeterminado True. Utiliza pfor para calcular jacobian cuando se establece en verdadero; de lo contrario, se utiliza tf.while_loop.
Devoluciones: Devuelve un Tensor.
Ejemplo 1:
Python3
# Importing the library import tensorflow as tf x = tf.constant([[4, 2],[1, 3]], dtype=tf.dtypes.float32) # Using GradientTape with tf.GradientTape() as gfg: gfg.watch(x) y = x * x * x # Computing jacobian res = gfg.jacobian(y, x) # Printing result print("res: ",res)
Producción:
res: tf.Tensor( [[[[48. 0.] [ 0. 0.]] [[ 0. 12.] [ 0. 0.]]] [[[ 0. 0.] [ 3. 0.]] [[ 0. 0.] [ 0. 27.]]]], shape=(2, 2, 2, 2), dtype=float32)
Ejemplo 2:
Python3
# Importing the library import tensorflow as tf x = tf.constant([[4, 2],[1, 3]], dtype=tf.dtypes.float32) # Using GradientTape with tf.GradientTape() as gfg: gfg.watch(x) # Using nested GradientTape for calculating higher order jacobian with tf.GradientTape() as gg: gg.watch(x) y = x * x * x # Computing first order jacobian first_order = gg.jacobian(y, x) # Computing Second order jacobian second_order = gfg.batch_jacobian(first_order, x) # Printing result print("first_order: ",first_order) print("second_order: ",second_order)
Producción:
first_order: tf.Tensor( [[[[48. 0.] [ 0. 0.]] [[ 0. 12.] [ 0. 0.]]] [[[ 0. 0.] [ 3. 0.]] [[ 0. 0.] [ 0. 27.]]]], shape=(2, 2, 2, 2), dtype=float32) second_order: tf.Tensor( [[[[[[24. 0.] [ 0. 0.]] [[ 0. 0.] [ 0. 0.]]] [[[ 0. 0.] [ 0. 0.]] [[ 0. 0.] [ 0. 0.]]]] [[[[ 0. 0.] [ 0. 0.]] [[ 0. 12.] [ 0. 0.]]] [[[ 0. 0.] [ 0. 0.]] [[ 0. 0.] [ 0. 0.]]]]] [[[[[ 0. 0.] [ 0. 0.]] [[ 0. 0.] [ 0. 0.]]] [[[ 0. 0.] [ 6. 0.]] [[ 0. 0.] [ 0. 0.]]]] [[[[ 0. 0.] [ 0. 0.]] [[ 0. 0.] [ 0. 0.]]] [[[ 0. 0.] [ 0. 0.]] [[ 0. 0.] [ 0. 18.]]]]]], shape=(2, 2, 2, 2, 2, 2), dtype=float32)
Publicación traducida automáticamente
Artículo escrito por aman neekhara y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA