Open In App

Tensorflow.js tf.layers.simpleRNNCell() Function

Last Updated : 12 Jun, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

Tensorflow.js is an open-source library that is being developed by Google for running machine learning models as well as deep learning neural networks in the browser or node environment.

The .layers.simpleRNNCell( ) function  is used to find a cell class for simpleRNN.

Syntax:

tf.layers.simpleRNNCell (args)

Parameters:

  • units: It is a tensor input that  has positive integer unit which is a  dimensionality of the output space.
  • activation: It is a tensor input that is  an activation function to use and defaults to hyperbolic tangent. If you pass null, linear activation will be applied.
  • useBias: It is a tensor input  where a bias vector use for the layer.
  • kernelInitializer: It is a tensor input  that is an initializer for the kernel weights matrix which is used for the linear transformation of the inputs.
  • recurrentInitializer: It is a tensor input that is an initializer for the recurrentKernel weights matrix which is used for the linear transformation of the recurrent state.
  • biasInitializer: It is a tensor input that is an initializer for the bias vector.
  • kernelRegularizer: It is a tensor input where regularizer function applied to the kernel weights matrix.
  • recurrentRegularizer: It is a tensor input where regularizer function applied to the recurrent_kernel weights matrix.
  • biasRegularizer: It is a tensor input where regularizer function applied to the bias vector.
  • kernelConstraint: It is a tensor input where constraint function applied to the kernel weights matrix.
  • recurrentConstraint: It is a tensor input where constraint function  applied to the recurrentkernel weights matrix.
  • biasConstraint: It is a tensor input where constraint function applied to the bias vector.
  • dropout: It is a tensor input where fraction of the units to drop for the linear transformation of the inputs and float number between 0  and 1.
  • recurrentDropout: It is a tensor input where fraction of the units to drop for the linear transformation of the recurrent state and float number between 0 and 1.
  • inputShape: It is a tensor input that will be used to create a input layer to insert before this layer, if defined. It is only applicable to input layers.
  • batchInputShape: It is a tensor input that will be used to create a input layer to insert before this layer, if defined. It is only applicable to input layers.
  • batchSize: It is a tensor input where batchSize is used to construct the batchInputShape, if inputShape is specified and batchInputShape is not specified.
  • dType: It is a tensor input that is the data-type for this layer and defaults to ‘float32’.
  • name: It is a tensor input that is name for this layer.
  • trainable: It is a tensor input that defaults to true whether the weights of this layer are updatable by fit.
  • weights: It is a tensor input that can be of initial weight values of the layer.
  • inputDType: It is a tensor input that has legacy support and do not use for new code.

 

Return Value: It returns SimpleRNNCell.

Example 1: In this example, SimpleRNNCell is distinct from the RNN subclass. In SimpleRNN, its apply method takes the input data of only a single time step and returns the cell’s output at the time step, while SimpleRNN takes the input data over a number of time steps.

Javascript




// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Defining input elements
const cell = tf.layers.simpleRNNCell({units: 3});
const input = tf.input({shape: [11]});
const output = cell.apply(input);
  
console.log(JSON.stringify(output.shape));


Output:

[null, 11]

Example 2: In this example, Instance(s) of SimpleRNNCell can be used to construct RNN layers. The most typical use of this workflow is to combine a number of cells into a stacked RNN cell (i.e. StackedRNNCell internally) and use it to create an RNN.

Javascript




// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Defining input elements
const cells = [
   tf.layers.simpleRNNCell({units: 8}),
   tf.layers.simpleRNNCell({units: 16}),
];
const rnn = tf.layers.rnn({cell: cells, returnSequences: true});
  
// Create an input with 20 time steps and
// a length-30 vector at each step
const input = tf.input({shape: [20, 30]});
const output = rnn.apply(input);
  
console.log(JSON.stringify(output.shape));


Output:

​[null, 20, 16]

Reference:https://js.tensorflow.org/api/latest/#layers.simpleRNNCell



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads