Tensorflow.js es una biblioteca de código abierto desarrollada por Google para ejecutar modelos de aprendizaje automático y redes neuronales de aprendizaje profundo en el entorno del navegador o del Node.
La función tf.customGrad() se utiliza para devolver el gradiente de una función personalizada específica «f». Aquí la función personalizada da {valor: Tensor, gradFunc: (dy, guardado) → Tensor[]}, donde gradFunc da los gradientes personalizados de la función de entrada f con respecto a sus entradas.
Sintaxis:
tf.customGrad(f)
Parámetros: Esta función acepta un parámetro que se ilustra a continuación:
- f: Es la función personalizada especificada.
Valor devuelto: esta función devuelve el gradiente de una función personalizada específica «f»
Ejemplo 1:
Javascript
// Importing the tensorflow.js library import * as tf from "@tensorflow/tfjs" // Initializing a custom function f const f = (a, save) => { // Saving a for its availability later for the gradient save([a]); // Overriding gradient of a^2 return { value: a.square(), // Here "saved.a" pointing to "a" which // have been saved above gradFunc: (dy, saved) => [dy.mul(saved[0].abs())] }; } // Calling the .customGrad() function // over the above specified custom function f const customOp = tf.customGrad(f); // Initializing a 1D Tensor of some values const a = tf.tensor1d([0, -1, 1, 2]); // Getting the gradient of above function // f for the above specified Tensor values const da = tf.grad(a => customOp(a)); // Printing the custom function "f" for the // above specified Tensor "a" console.log(`f(a):`); customOp(a).print(); // Printing the gradient of the function "f" for the // above specified Tensor "a" console.log(`f'(a):`); da(a).print();
Producción:
f(a): Tensor [0, 1, 1, 4] f'(a): Tensor [0, 1, 1, 2]
Ejemplo 2:
Javascript
// Importing the tensorflow.js library import * as tf from "@tensorflow/tfjs" // Calling the .customGrad() function // with the custom function "f" as // it's parameter const customOp = tf.customGrad( // Initializing a custom function f (a, save) => { // Saving a for its availability later for the gradient save([a]); // Overriding gradient of a^3 return { value: a.pow(tf.scalar(3, 'int32')), // Here "saved.a" pointing to "a" which // have been saved above gradFunc: (dy, saved) => [dy.mul(saved[0].abs())] }; } ); // Initializing a 1D Tensor of some values const a = tf.tensor1d([0, -1, 2, -2, 0.3]); // Getting the gradient of above function // f for the above specified Tensor values const da = tf.grad(a => customOp(a)); // Printing the custom function "f" for the // above specified Tensor "a" console.log(`f(a):`); customOp(a).print(); // Printing the gradient of the function "f" for the // above specified Tensor "a" console.log(`f'(a):`); da(a).print();
Producción:
f(a): Tensor [0, -1, 8, -8, 0.027] f'(a): Tensor [0, 1, 2, 2, 0.3]
Referencia: https://js.tensorflow.org/api/latest/#customGrad
Publicación traducida automáticamente
Artículo escrito por Kanchan_Ray y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA