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

Introducción: 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 Tensorflow.js tf.layers.stackedRNNCells() se usa para apilar la celda RNN y hacer que se comporte como una sola celda. 

Sintaxis:

tf.layers.stackedRNNCells(arge); 

Parámetros: el método anterior acepta el siguiente parámetro:

  • args: Este es un tipo de objeto. Tiene los siguientes campos:
    • celdas: es una array de instancias RNNCell que deben apilarse juntas.
    • InputShape: debe ser nulo o una array de números. Se utiliza para crear la capa de entrada que se inserta antes de esta capa. Se utiliza solo para la capa de entrada.
    • batchinputShape: debe ser nulo de una array de números. Se utiliza para crear la capa de entrada que se inserta antes de esta capa. Tiene más prioridad que inputShape, por lo que si se define batchinpurtShape, se utiliza para crear la capa de entrada.
    • tamaño del lote: debe ser un número. En caso de ausencia de batchinputShape, se utiliza para crear batchinputShape con InputShape, que será [batchSize, …inputSize].
    • dtype: Es el tipo de datos para la capa de entrada. Datos predeterminados: el tipo para esta capa de entrada es float32.
    • nombre: Debe ser una string. Define el nombre de la capa de entrada.
    • pesos: Debe ser tensor. Que define el valor de peso inicial de la capa de entrada.
    • inputDtype: debe ser de tipo de datos. Se utiliza para soportar Legacy.

Devoluciones: Devuelve un objeto (StackedRNNCells).

Ejemplo 1: En este ejemplo, veremos cómo las RNNCells simples se apilan con tf.layers.stackedRNNCells() y funcionan como RNNCells individuales:

Javascript

import * as tf from "@tensorflow/tfjs"
  
// Creating RNNcells for stack
const cell1 = tf.layers.simpleRNNCell({units: 2});
const cell2 = tf.layers.simpleRNNCell({units: 4});
  
// Stack all the RNNCells 
const cell = tf.layers.stackedRNNCells({ cells: [cell1, cell2]});
  
const input = tf.input({shape: [8]});
const output = cell.apply(input);
  
console.log(JSON.stringify(output.shape));

Producción:

[null,8]

Ejemplo 2: En este ejemplo, combinaremos una cantidad de celdas en una celda RNN apilada con la ayuda de stackedRNNCells y las usaremos para crear RNN. 

Javascript

import * as tf from "@tensorflow/tfjs";
  
// Creating simple RNNCell for stacking together
const cell1 = tf.layers.simpleRNNCell({ units: 4 });
const cell2 = tf.layers.simpleRNNCell({ units: 8 });
const cell3 = tf.layers.simpleRNNCell({ units: 12 });
const cell4 = tf.layers.simpleRNNCell({ units: 16 });
  
const stacked_cell = tf.layers.stackedRNNCells({
    cells: [cell1, cell2, cell3, cell4],
    name: "Stacked_RNN",
    dtype: "int32",
});
  
const rnn = tf.layers.rnn({ cell: stacked_cell, returnSequences: true });
  
// Create input with 10 steps and 20 length vector at each step.
const input = tf.input({ shape: [8, 32] });
const output = rnn.apply(input);
  
console.log("Shape of output should be in : ", JSON.stringify(output.shape));

Producción:

Shape of output should be in :  [null,8,16]

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

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 *