Tensorflow.js es un conjunto de herramientas de código abierto desarrollado por Google para ejecutar modelos de aprendizaje automático y redes neuronales de aprendizaje profundo en el navegador o en la plataforma del Node. También permite a los desarrolladores crear modelos de aprendizaje automático en JavaScript y utilizarlos directamente en el navegador o con Node.js.
La función tf.layers.simpleRNN() se usa para crear una capa RNN que consta de una sola SimpleRNNCell.
Sintaxis:
tf.layers.simpleRNN(args)
Parámetros: Acepta el objeto args el cual puede tener las siguientes propiedades:
- unidades (número): las dimensiones del espacio de salida, expresadas como un número entero positivo.
- activación: La función de activación de la capa.
- useBias (booleano): si la capa tiene un vector de sesgo o no. Verdadero es el valor predeterminado.
- kernelInitializer: el inicializador de la array de pesos del kernel convolucional.
- recurrentInitializer: el inicializador de la array de ponderaciones del kernel recurrente. Se utiliza para la transformación lineal del estado recurrente.
- biasInitializer: el inicializador del vector de polarización.
- kernelRegularizer: la función de regularización aplicada a la array de pesos del kernel.
- recurrentRegularizer: la función de regularizador aplicada a la array de ponderaciones del kernel recurrente.
- biasRegularizer: la función de regularización aplicada al vector de sesgo.
- kernelConstraint: La restricción para los pesos del núcleo convolucional.
- recurrentConstraint: la restricción para los pesos recurrentes de Kernel.
- biasConstraint: la restricción para el vector de sesgo.
- dropout (número): Es un número entre 0 y 1. La fracción de las unidades a bajar para la transformación lineal de las entradas.
- RecurrentDropout (número): Es un número entre 0 y 1. La fracción de las unidades a caer para la transformación lineal del estado recurrente.
- dropoutFunc: Esto se incluye con el propósito de probar DI.
- celda: Una instancia de celda RNN.
- returnSequences (booleano): indica si se debe devolver la salida final de la serie de salida o si se debe devolver la secuencia completa.
- returnState (booleano): si el último estado debe devolverse o no junto con la salida.
- goBackwards (booleano): si esto es cierto, procesa la secuencia de entrada hacia atrás y devuelve la secuencia invertida. El valor predeterminado es falso.
- con estado (booleano): si es verdadero, el estado final de cada muestra en el índice I en un lote se usará como el estado inicial de la muestra del siguiente lote en el índice i (predeterminado: falso).
- unroll (booleano): la red se desenrollará si es verdadero; de lo contrario, se utilizará un bucle simbólico. Aunque el desenrollado puede acelerar un RNN, consume más memoria. Solo se aceptan secuencias cortas para desenrollar (predeterminado: falso).
- inputDim (número): la dimensionalidad de la entrada (entero). Cuando esta capa se utiliza como capa inicial en un modelo, esta opción (o la opción inputShape) es necesaria.
- inputLength (número): Cuando la longitud de las secuencias de entrada es constante, se debe dar. Si desea vincular las capas Flatten y Dense aguas arriba, necesitará este parámetro (sin él, no se puede calcular la forma de las salidas densas).
- inputShape: si se establece esta propiedad, se utilizará para construir una capa de entrada que se insertará antes de esta capa.
- batchInputShape: si se establece esta propiedad, se creará e insertará una capa de entrada antes de esta capa.
- batchSize: si no se proporciona batchInputShape y sí inputShape, se utiliza batchSize para crear el batchInputShape.
- dtype: Es el tipo de tipo de datos para esta capa. float32 es el valor predeterminado. Este parámetro se aplica exclusivamente a las capas de entrada.
- nombre: Este es el nombre de la capa y es de tipo string.
- entrenable: si los pesos de esta capa se pueden cambiar por ajuste. Verdadero es el valor predeterminado.
- pesos: Los valores de peso iniciales de la capa.
- inputDType: se utiliza para el soporte heredado.
Devoluciones: Devuelve un objeto (SimpleRNN).
Ejemplo 1:
Javascript
import * as tf from "@tensorflow/tfjs"; const input = tf.input({ shape: [4, 3] }); const simpleRNNLayer = tf.layers.simpleRNN({ units: 4, returnSequences: true, returnState: true }); let output, finalState; [output, finalState] = simpleRNNLayer.apply(input); const model = tf.model({ inputs: input, outputs: output }); const x = tf.tensor3d([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 4, 3]); model.predict(x).print();
Producción:
Tensor [[[0.9078521, -0.9811671, 0.7162469, 0.9916067], [0.9999183, -0.9997805, 0.8239585, 0.9999147], [0.9999995, -0.9999998, 0.9744635, 0.9999991], [1 , -1 , 0.9965866, 1 ]]]
Ejemplo 2:
Javascript
import * as tf from "@tensorflow/tfjs"; const input = tf.input({ shape: [5, 4] }); const simpleRNNLayer = tf.layers.simpleRNN({ units: 8, returnSequences: true, returnState: true }); let output, finalState; [output, finalState] = simpleRNNLayer.apply(input); const model = tf.model({ inputs: input, outputs: output }); const x = tf.tensor3d([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [1, 5, 4] ); model.predict(x).print();
Producción:
Tensor [[[0.2636383 , 0.9990318, 0.1660565, 0.9994429, -0.1762104, -0.9415753, 0.2943841, 0.7435381], [-0.9700606, 0.9999998, 0.5248303, 1 , -0.6762528, -0.9998503, 0.7585124, 0.836854 ], [-0.9959837, 1 , 0.5081902, 1 , -0.9194239, -0.9999997, 0.9733018, 0.988907 ], [-0.9993195, 1 , 0.8597047, 1 , -0.9791942, -1 , 0.9934399, 0.9968426], [-0.999855 , 1 , 0.9431108, 1 , -0.9907937, -1 , 0.9975212, 0.9990824]]]
Referencia: https://js.tensorflow.org/api/latest/#layers.simpleRNN
Publicación traducida automáticamente
Artículo escrito por aayushmohansinha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA