Función Tensorflow.js tf.train.adadelta()

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.train.adadelta() se usó para crear un tf.AdadeltaOptimizer que usa el algoritmo adadelta. El algoritmo adadelta es una extensión del algoritmo de optimización gradiente decente. Se utiliza para optimizar las redes neuronales.

Sintaxis:

tf.train.adadelta(learningRate)

Parámetros:

  • learningRate: Especifica la tasa de aprendizaje que utilizará el algoritmo de descenso de gradiente adadelta.
  • rho: especifica la disminución de la tasa de aprendizaje en cada actualización.
  • épsilon:  Especifica una épsilon constante que se utiliza para mejorar la condición de actualización de graduación. Opcional

Valor de retorno: Devuelve un tf.adadeltaOptimizer

Ejemplo 1: Ajuste una función f=(a*x+y) usando el optimizador adadelta, aprendiendo los coeficientes a y b.

Javascript

// Importing tensorflow
import * as tf from "@tensorflow/tfjs"
 
const xs = tf.tensor1d([0, 1, 2, 3]);
const ys = tf.tensor1d([1.1, 5.9, 16.8, 33.9]);
 
// Choosing variable coefficients
const a = tf.scalar(Math.random()).variable();
const b = tf.scalar(Math.random()).variable();
 
// Defining function f = (a*x + b)
const f = x => a.mul(x).add(b);
const loss = (pred, label) => pred.sub(label).square().mean();
 
const learningRate = 0.01;
 
// Creating optimizer
const optimizer = tf.train.adadelta(learningRate);
 
// Train the model.
for (let i = 0; i < 10; i++) {
   optimizer.minimize(() => loss(f(xs), ys));
}
 
// Make predictions.
console.log(
     `a: ${a.dataSync()}, b: ${b.dataSync()}}`);
const preds = f(xs).dataSync();
preds.forEach((pred, i) => {
   console.log(`x: ${i}, pred: ${pred}`);
});

Producción:

a: 5.39164924621582, b: 1.8858184814453125}
x: 0, pred: 1.8858184814453125
x: 1, pred: 7.277467727661133
x: 2, pred: 12.669116973876953
x: 3, pred: 18.060766220092773

Ejemplo 2: Ajuste una ecuación cuadrática usando el optimizador adadelta, aprendiendo los coeficientes a, b y c. La configuración del optimizador es la siguiente:

  • tasa de aprendizaje = 0.01
  • ro = 0,2
  • épsilon = 0,5

Javascript

// Importing tensorflow
import * as tf from "@tensorflow/tfjs"
 
const xs = tf.tensor1d([0, 1, 2, 3]);
const ys = tf.tensor1d([1.1, 5.9, 16.8, 33.9]);
 
const a = tf.scalar(Math.random()).variable();
const b = tf.scalar(Math.random()).variable();
const c = tf.scalar(Math.random()).variable();
 
const f = x => a.mul(x.square()).add(b.mul(x)).add(c);
const loss = (pred, label) => pred.sub(label).square().mean();
 
// Setting configurations for our optimizer
const learningRate = 0.01;
const rho = 0.2;
const epsilon = 0.5;
 
// Creating the optimizer
const optimizer = tf.train.adadelta(learningRate, rho, epsilon);
 
// Train the model.
for (let i = 0; i < 10; i++) {
   optimizer.minimize(() => loss(f(xs), ys));
}
 
// Make predictions.
console.log(
     `a: ${a.dataSync()}, b: ${b.dataSync()}, c: ${c.dataSync()}`);
const preds = f(xs).dataSync();
preds.forEach((pred, i) => {
   console.log(`x: ${i}, pred: ${pred}`);
});

Producción:

a: 3.1871466636657715, b: 1.5096971988677979, c:0.8317463397979736
x: 0, pred: 0.8317463397979736
x: 1, pred: 5.528590202331543
x: 2, pred: 16.599727630615234
x: 3, pred: 34.04515838623047

Referencia: https://js.tensorflow.org/api/1.0.0/#train.adadelta

Publicación traducida automáticamente

Artículo escrito por abhinavjain194 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *