Función Tensorflow.js tf.layers.lstm()

Tensorflow.js es una biblioteca de código abierto que está desarrollando Google para ejecutar modelos de aprendizaje automático, así como redes neuronales de aprendizaje profundo en el entorno del navegador o del Node.

La función tf.layers.lstm() se usa para crear una capa RNN que consta de una LSTMCell y el método de aplicación de LSTM opera en una secuencia de entradas. La forma de la entrada debe ser al menos 2D, siendo la primera dimensión los pasos de tiempo. lstm es la capa de memoria a largo y corto plazo. 

Sintaxis: 

  tf.layers.lstm( args ); 

Parámetros: 

  • args: especifica el objeto de configuración dado:
    • recurrentActivation: Especifica la función de activación que se utilizará para el paso recurrente. El valor predeterminado de este parámetro es sigmoide duro.
    • unitForgetBias: debe ser booleano. Se utiliza para sumar 1 al sesgo de la puerta de olvido en la inicialización. 
    • implementación: Especifica el modo de implementación. Puede ser 1 o 2. Para un rendimiento superior, se recomienda la implementación.
    • unidades: Es un número que indica la dimensionalidad de la forma de salida. 
    • activación: es una entrada de tensor que es una función de activación para usar y por defecto es una tangente hiperbólica. Si pasa nulo, se aplicará la activación lineal. 
    • useBias: Es un booleano que indica si se debe usar un vector de sesgo o no. 
    • kernelInitializer: Es el Inicializador de la array de peso del kernel, que se utiliza para la transformación lineal de las entradas.
    • recurrentInitializer: Es el Inicializador de la array de pesos recurrentInitializer, que se utiliza para la transformación lineal del estado recurrente.
    • biasInitializer: Es el inicializador para el vector de polarización.
    • kernelRegularizer: Es una función regularizadora aplicada a la array de peso del kernel. 
    • recurrentRegularizer: Es una función de regularización aplicada a la array de peso del kernel recurrente.
    • biasRegularizer:   Es una función regularizadora aplicada al vector bias.
    • kernelConstraint: Es una función de restricción aplicada a la array de peso del kernel.
    • RecurrentConstraint:   Es una función de restricción aplicada a la array de peso de RecurrentKernel.
    • biasConstraint: Es una función de restricción aplicada a un vector de sesgo.
    • dropout: Es un número entre 0 y 1 que indica la unidad a dropear para la transformación lineal de la entrada.
    • RecurrentDropout: Es un número entre 0 y 1 que indica la unidad a soltar para la transformación lineal del estado recurrente.
    • dropoutFunc: esta es una función que se agrega para fines de prueba DI.
    • celda: debe ser una instancia de una celda RNN o una array de instancias de celdas RNN.
    • returnSequences:   Debe ser booleano. Define cuál de estos dos resiste la última salida o el retorno de secuencia completa en la secuencia de salida.
    • returnState: debe ser booleano. Define el último estado de retorno en la salida.
    • goBackwards: debe ser booleano. Define si procesar la entrada en secuencia inversa e inversa o no.
    • stateful: Debe ser booleano. Define si usar el último estado del lote como estado inicial para el lote actual o no.
    • unroll: debe ser booleano. Indica si usar la red desenrollada o si usar un bucle simbólico.
    • inputDim: Debe ser un número. Esto se usa cuando esta capa se usa como la primera capa del modelo. Define la dimensión de entrada en la capa.
    • inputLength: Debe ser un número. Este campo debe estar cuando la secuencia en los datos de entrada es constante.
    • inputShape: debe ser una array de números. Este campo se usa para crear la capa de entrada que se usa para insertarse antes de esta capa.
    • batchInputShape: debe ser una array de números. Este campo se usará si la forma de entrada y este campo se proporcionan como un parámetro para crear la capa de entrada que se usa para insertar antes de esta capa.
    • tamaño del lote: debe ser un número. En ausencia de batchInputShape, este campo se usa para crear batchInputShape con forma de entrada. batchInputShape : [ tamaño del lote , … forma de entrada ].
    • dtype: si esta capa se usa como capa de entrada, este campo se usa como el tipo de datos para esta capa.
    • nombre: Debe ser un tipo de string. este campo define el nombre de esta capa.
    • entrenable: debe ser booleano. Este campo define si los pesos de esta capa se pueden entrenar con ajuste o no.
    • pesos: Este debería ser un tensor que defina el valor de peso inicial para esta capa.
    • inputDType: este es el tipo de datos que se utiliza para el soporte heredado.

Valor devuelto: Devuelve LSTM.

Ejemplo 1:

Javascript

import * as tf from "@tensorflow/tfjs"
  
// Long short term memrory layer
const LSTM = tf.layers.lstm({units: 4, returnSequences: true});
  
// Create an input with 10 time steps.
const input = tf.input({shape: [10, 40]});
const output = LSTM.apply(input);
  
// Here we get three value 1st value is unknown batch size;
// 2nd value is the sequence length of `input`,
// 3rd value is the `LSTMCell`'s number of units
console.log(JSON.stringify(output.shape));

Producción:

[null,10,4]

Ejemplo 2:

Javascript

// Importing the tensorflow.js library
//import * as tf from "@tensorflow/tfjs"
  
// Create a new model with lstm Layer
const LSTM = tf.layers.lstm({units: 4, returnSequences: true});
  
// Create a 3d tensor
const x = tf.tensor([1, 2, 3, 4], [2, 2,1]);
  
// Apply lstm layer to x
const output = LSTM.apply(x);
  
// Print output
output.print()

Producción:

Tensor
    [[[0.0829882, -0.0169818, -0.1132356, 0.0627953],
      [0.1211651, -0.0538836, -0.2851864, 0.1661802]],

     [[0.0739072, -0.0640151, -0.296207 , 0.1846195],
      [0.0578168, -0.1612808, -0.5005066, 0.3471084]]]

Referencia: https://js.tensorflow.org/api/latest/#layers.lstm

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 *