Tensorflow.js tf.LayersModel clase .fitDataset() 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.js tf.LayersModel class .fitDataset() se usa para entrenar el modelo de capa mediante el uso de un objeto de conjunto de datos.

Sintaxis:

LayerModel.fitDataset(dataset, args);

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

  • conjunto de datos: es un valor de entrada en forma de conjunto de datos mediante el cual entrenamos nuestro modelo de capa.
  • args: Es un objeto que contiene los siguientes valores:
    • batchesPerEpoch: Es el número de lotes en cada época. Depende del tamaño del lote, a medida que aumenta el tamaño del lote, su tamaño disminuye.
    • épocas: es el número total de iteraciones en el conjunto de datos de entrenamiento durante el modelo de entrenamiento. Debe ser un valor entero.
    • initialEpoch: Se utiliza para definir el valor de la época en la que comenzar a entrenar.
    • ValidationData: se utiliza para dar una estimación del modelo final al seleccionar entre modelos finales.
    • 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.
    • 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.
    • callbacks: Define una lista de callbacks a ser llamados durante el entrenamiento. La variable puede tener una o más de estas devoluciones de llamada onTrainBegin(), onTrainEnd(), onEpochBegin(), onEpochEnd(), onBatchBegin(), onBatchEnd(), onYield().
    • ValidationBatchSize: Es el número que define el tamaño del lote. Se utiliza para validar el tamaño del lote. Significa que no podemos poner todos los conjuntos de datos a la vez que excedan este valor. su valor predeterminado es 32.
    • validaciónBatches: Se utiliza para validar los lotes de muestras. Se utiliza para extraer datos de validación con fines de validación en cada final de una época.
    • 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, rinde 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 cede.

Devoluciones: Promise<Historial>

Ejemplo 1: En este ejemplo, entrenaremos nuestro modelo de capas con un conjunto de datos CSV.

Javascript

import * as tf from "@tensorflow/tfjs"
  
// Path for the CSV file 
const gfg_CsvFile =
'https://storage.googleapis.com/tfjs-examples/multivariate-linear-regression/data/boston-housing-train.csv';
  
async function run() {
  
    // Creating model
    const gfg_LayerModel = tf.sequential();
  
    // Adding layer to model
    const config = { units: 1, inputShape: [12] }
    const gfg_layer = tf.layers.dense(config);
    gfg_LayerModel.add(gfg_layer);
  
    // Compiling the model
    const opt = tf.train.sgd(0.00000001)
    gfg_LayerModel.compile({ optimizer: opt, 
            loss: 'meanSquaredError' });
  
    // Here we want to predict column tax
    const config2 = { columnConfigs: {
             rad: { isLabel: true } } };
  
    const csvDataset = tf.data.csv(gfg_CsvFile, config2);
  
    // Creating dataset for training
    const flattenedDataset =
        csvDataset.map(({ xs, ys }) => {
            return { xs: Object.values(xs), 
                    ys: Object.values(ys) };
        }).batch(6);
  
    // Training the model
    const Tm = await gfg_LayerModel.fitDataset(
            flattenedDataset, { epochs: 10 });
  
    for (let i = 0; i < 6; i++) {
        console.log(Tm.history.loss[i])
    }
}
run();

Producción:

41480.109375
28887.93359375
20162.228515625
14115.478515625
9924.9404296875
7020.56005859375

Ejemplo 2: En este ejemplo, entrenaremos nuestro modelo de capas con un conjunto de datos de la array.

Javascript

import * as tf from "@tensorflow/tfjs"
  
async function run() {
  
    // Creating Layer model
    const gfg_LayerModel = tf.sequential();
  
    // Adding layer to model
    const config = { units: 4, inputShape: [4] }
    const gfg_layer = tf.layers.dense(config);
    gfg_LayerModel.add(gfg_layer);
  
    // Compiling the model
    const config2 = { optimizer: 'sgd', loss: 'meanSquaredError' }
    gfg_LayerModel.compile(config2);
  
    // Creating Datasets for training
    const array1 = [
        [1, 2, 3, 4],
        [1, 4, 6, 8],
        [1, 3, 4, 7],
        [3, 4, 7, 8]
    ];
    const array2 = [1, 1, 1, 1];
    const arrData1 = tf.data.array(array1);
    const arrData2 = tf.data.array(array2);
  
    const config3 = { xs: arrData1, ys: arrData2 }
    const arrayDataset = tf.data.zip(config3)
    const ArrayDataset = arrayDataset.batch(4);
  
    // Training the model
    const Tm = await gfg_LayerModel.fitDataset(
            ArrayDataset, { epochs: 4 });
  
    // Printing the loss after training
    console.log("Loss After Training Layer Model"
        + Tm.history.loss[0]);
}
run();

Producción:

Loss After Training Layer Model 4.386415958404541

Referencia: https://js.tensorflow.org/api/latest/#tf.LayersModel.fitDataset

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 *