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