Tensorflow.js tf. Clase secuencial .fit() Método

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.

El método Tensorflow.jstf.Sequential class .fit() se usa para entrenar el modelo para el número fijo de épocas (iteraciones en un conjunto de datos).

Sintaxis:

model.fit( x, y, args?);

Parámetros:  Este método acepta los siguientes parámetros:

  • x: Es tf.Tensor que contiene todos los datos de entrada.
  • y: Es tf.Tensor que contiene todos los datos de salida.
  • args: es de tipo objeto, sus variables son las siguientes:
    • batchSize: Define el número de muestras que se propagarán a través del entrenamiento.
    • epochs: Define la iteración sobre los arreglos de datos de entrenamiento.
    • detallado: ayuda a mostrar el progreso de cada época.
      Si el valor es 0, significa que no hay ningún mensaje impreso durante la llamada a fit(). Si el valor es 1, significa que en Node-js, imprime la barra de progreso. En el navegador no muestra ninguna acción. El valor 1 es el valor predeterminado. 2: el valor 2 aún no está implementado.
    • devoluciones de llamada: define la lista de devoluciones de llamada que se llamarán durante el entrenamiento. La variable puede tener una o más de estas devoluciones de llamada onTrainBegin(), onTrainEnd(), onEpochBegin(), onEpochEnd(), onBatchBegin(), onBatchEnd(), onYield().
    • ValidationSplit: facilita al usuario dividir el conjunto de datos de entrenamiento en entrenamiento y validación.
      Por ejemplo: si el valor es validación-Dividir = 0.5, significa usar el último 50% de los datos antes de barajar para la validación.
    • ValidationData: se utiliza para dar una estimación del modelo final al seleccionar entre modelos finales.
    • shuffle: este valor define la reproducción aleatoria de los datos antes de cada época. no tiene efecto cuando stepsPerEpoch no es nulo.
    • classWeight: Se utiliza para ponderar la función de pérdida. Puede ser útil decirle al modelo que preste más atención a las muestras de una clase subrepresentada.
    • sampleWeight: Es una array de pesos para aplicar a la pérdida del modelo para cada muestra.
    • initialEpoch: Es el valor de definir la época en la que comenzar a entrenar. Es útil para reanudar una carrera de entrenamiento anterior.
    • stepsPerEpoch: Define el número de lotes de muestras antes de declarar una época terminada y comenzar la próxima época. Es igual a 1 si no se determina.
    • ValidationSteps: es relevante si se especifica stepsPerEpoch. Número total de pasos a validar antes de parar.
    • yieldEvery: Define la configuración de la frecuencia de cesión del hilo principal a otras tareas. Puede ser automático, lo que significa que el rendimiento ocurre a una determinada velocidad de fotogramas. lote, si el valor es este, produce cada lote. época, si el valor es este, cede cada época. cualquier número, si el valor es cualquier número, produce cada número en milisegundos. nunca, si el valor es este, nunca produce.

Devoluciones: Promise<Historial>

Ejemplo 1: En este ejemplo entrenaremos nuestro modelo por configuración predeterminada.

Javascript

import * as tf from "@tensorflow/tfjs"
 
// Creating model
const model = tf.sequential( ) ;
 
// Adding layer to model
const config = {units: 1, inputShape: [1]}
const x = tf.layers.dense(config);
model.add(x);
 
// Compiling the model
const config2 = {optimizer: 'sgd', loss: 'meanSquaredError'}
model.compile(config2);
 
// Tensor for training
const xs = tf.tensor2d([1, 1.2,1.65, 1.29, 1.4, 1.7], [6, 1]);
const ys = tf.tensor2d([1, 0.07,0.17, 0.29, 0.43, 1.02], [6, 1]);
 
// Training the model
const Tm = await model.fit(xs, ys);
 
// Printing the loss after training
console.log("Loss  " + " : " + Tm.history.loss[0]);

Producción:

Loss after Epoch  : 2.8400533199310303

Ejemplo 2: En este ejemplo entrenaremos nuestro modelo haciendo alguna configuración.

Javascript

import * as tf from "@tensorflow/tfjs"
 
// Creating model
const Model = tf.sequential( ) ;
 
// Adding layer to model
const config = {units: 4, inputShape: [2],
                activation : "sigmoid"}
const x = tf.layers.dense(config);
Model.add(x);
 
const config2 = {units: 3,
        activation : "sigmoid"}
const y = tf.layers.dense(config2);
Model.add(y);
 
 
// Compiling the model
const sgdOpt = tf.train.sgd(0.6)
const config3 = {optimizer: 'sgd', loss: 'meanSquaredError'}
Model.compile(config3);
 
// Test Tensor
const xs = tf.tensor2d([ [0.3, 0.24],
                        [0.12, 0.73],
                        [0.9, 0.54]
                        ]);
 
const ys = tf.tensor2d([ [0.43, 0.5, 0.92],
                        [0.1, 0.39, 0.12],
                        [0.76, 0.4, 0.92]
                        ]);
 
// Training the model
for( let i = 0; i < 5; i++){
const config = { shuffle : true, epoch : 10 }
const Tm = await Model.fit(xs, ys, config);
 
// Printing the loss after training
console.log("Loss " + " : " + Tm.history.loss[0]);
 
}

Producción: 

Loss   : 0.1362573206424713
Loss   : 0.13617873191833496
Loss   : 0.13610021770000458
Loss   : 0.13602176308631897
Loss   : 0.13594339787960052

Referencia: https://js.tensorflow.org/api/3.8.0/#tf.Sequential.fit

Publicación traducida automáticamente

Artículo escrito por satyam00so 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 *