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

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.adagrad() se usó para crear un tf.AdagradOptimizer que usa el algoritmo de gradiente adaptativo (adagrad). 

Sintaxis:

tf.train.adagrad(learningRate).

Parámetros:

  • learningRate: especifica la tasa de aprendizaje que utilizará el algoritmo de descenso de gradiente adaptativo.
  • initialAccumulatorValue: Especifica el valor inicial de los acumuladores. Debe ser positivo.

Valor devuelto: Devuelve un tf.adagradOptimizer.

Ejemplo 1: ajuste una función f = (x + y) aprendiendo los coeficientes x, y.

Javascript

// importing tensorflow
import tensorflow as tf
 
const xs = tf.tensor1d([0, 1, 2]);
const ys = tf.tensor1d([1.3, 2.5, 3.7]);
 
const x = tf.scalar(Math.random()).variable();
const y = tf.scalar(Math.random()).variable();
 
// Define a function f(x, y) = x + y.
const f = x => x.add(y);
const loss = (pred, label) =>
    pred.sub(label).square().mean();
 
const learningRate = 0.05;
 
// Create adagrad optimizer
const optimizer =
  tf.train.adagrad(learningRate);
 
// Train the model.
for (let i = 0; i < 5; i++) {
   optimizer.minimize(() => loss(f(xs), ys));
}
 
// Make predictions.
console.log(
`x: ${x.dataSync()}, y: ${y.dataSync()}`);
const preds = f(xs).dataSync();
preds.forEach((pred, i) => {
console.log(`x: ${i}, pred: ${pred}`);
});

Producción

x: 0.8561810255050659, y: 0.6922483444213867
x: 0, pred: 0.6922483444213867
x: 1, pred: 1.6922483444213867
x: 2, pred: 2.6922483444213867

Ejemplo 2: Ajuste una función cuadrática aprendiendo los coeficientes a, b, c.

Javascript

// importing tensorflow
import tensorflow as tf
 
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();
 
const learningRate = 0.01;
const optimizer =
      tf.train.adagrad(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()}, c: ${c.dataSync()}`);
const preds = f(xs).dataSync();
preds.forEach((pred, i) => {
   console.log(`x: ${i}, pred: ${pred}`);
});

Producción

a: 0.3611285388469696, 
b: 0.6980878114700317, 
c: 0.8787991404533386
x: 0, pred: 0.8787991404533386
x: 1, pred: 1.9380154609680176
x: 2, pred: 3.7194888591766357
x: 3, pred: 6.223219394683838

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

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 *