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.gruCell( ) function is used to create a cell class for GRU.
Syntax:
tf.layers.gruCell (args)
Parameters:
- recurrentActivation: It is a tensor input that is an activation function to use for the recurrent step, defaults to hard sigmoid. If you pass null, no activation is applied.
- implementation: It is a tensor input that has two implementation mode:
- In first , mode will structure its operations as a larger number of smaller dot products and additions.
- In second, mode will batch them into fewer, larger operations. These modes will have different performance profiles on different hardware and for different applications.
- resetAfter: It is a tensor input that can be of GRU convention whether to apply reset gate after or before matrix multiplication where false=”before” and true=”after”.
- 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 an 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 an 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, 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.
- weight: 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 GRUCell.
Example 1:In this example, GRUCell is distinct from the RNN subclass GRU in that its apply method takes the input data of only a single time step and returns the cell’s output at the time step, while GRU 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.gruCell({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 GRUCell 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.gruCell({units: 8}), tf.layers.gruCell({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.gruCell