Open In App

Tensorflow.js tf.layers.conv1d() Function

Improve
Improve
Like Article
Like
Save
Share
Report

Tensorflow.js is a javascript library developed by Google to run and train machine learning models in the browser or in Node.js. Tensorflow.js tf.layers.conv1d() function is used to create convolution layer. It is used to applied 1d convolution to the input data. The convolutional layer is used to make a filter which is used to filter input data in the desired output.

Syntax:

tf.layers.conv1d(args);

Parameters: This function accepts following parameters:

  • args: This is object type that contains following values:
    • filters: It is the number that defined the dimension of the output tensor. It the number of  filters in the convolution.
    • kernelSize: It define the convolution window to the convolution layers which means subset of input data takes at once.
    • strides: It define the unit to move in input data by the convolution layer in each dimensions.
    • padding: It define the padding to the convolution layer which means to amount to data added to the input data during processing. It’ s value can be ‘valid’ , ‘same’, and ‘causal’.
    • dataFormat: It define the data format of the input data as data is in ‘channelsFirst’ or in ‘channelsLast’.
    • dilationRate: It is used to dilate the convolution in each dimension. It is used to define the space in between the values in kernel.
    • activation: It define the activation function to use in for the input data.
    • useBias: It is used for making decision for using bias vector or not.
    • kernelInitializer: It is the initial weight for the kernel in convolution layer. It define the way to set the initial random weights of convolution layers.
    • biasInitializer: It is the initial weight for the bias vector of convolution layer.
    • kernelConstraint: It is the constraint for the convolution layer kernel weight which is used to increase the efficiency.
    • biasConstraint: It is the constraint for the convolution layer bias vector to increase the efficiency.
    • kernelRegularizer: It is the regularizer function that is applied to matrix of the weight of the kernel to regularize it.
    • biasRegularizer: It the regularizer function that is applied to the bias vector to regularize it.
    • activityRegularizer: it is the function that is applied to the activation for regularize purpose.
    • inputShape: It declared that this layer accepts  the input layer of this shape. it is only used for the input layer.
    • batchInputShape: It define the batch size of input layer. It is used for the input layer.
    • batchSize: It is used as supplementary to the batchInputShape in process of making input layer.
    • dtype: It define the data-type for this layer. ‘float32’ is the default value for layer.
    • trainable: It is used to make layer trainable of function or not.
    • weights: It is the initial weight value of this layer.
    • inputDtype: It is used deciding the data-type of the input layer.

Returns: Conv1D

Example 1: In this example, we will create sequential model and add the 1d convolution layer to it with filter ,kernelSize ,inputShape and activation. At last we compile our model with layers and see the summary of it. 

Javascript




import * as tf from "@tensorflow/tfjs"
 
  // Creating model
  const geek_Model  =  tf.sequential();
 
  // Adding inputLayer
  const geek_config = {inputShape: [7,4]};
  const geek_layer1 = tf.layers.inputLayer(geek_config);
  geek_Model.add(geek_layer1);
 
  // Adding convolution layer
  const geek_config2 = {
    filters:10,kernelSize:7                        
   ,inputShape:[28,1],
    activation: 'relu'};
  const geek_layer2 = tf.layers.conv1d(geek_config2);
   //console.log(y.shape);
   geek_Model.add(geek_layer2);
 
  // Adding dense layer
  const geek_config3 = {
    units:7,
    activation: 'softmax'
  };
  const geek_layer3 = tf.layers.dense(geek_config3);
  geek_Model.add(geek_layer3)
 
  // Compiling our model
  const geek_config4 = {
    optimizer: 'sgd',
    loss: 'meanSquaredError'
  };
  geek_Model.compile(geek_config4);
 
  // Printing our summary
  geek_Model.summary()


Output:

_________________________________________________________________
Layer (type)                 Output shape              Param #   
=================================================================
input1 (InputLayer)          [null,7,4]                0         
_________________________________________________________________
conv1d_Conv1D1 (Conv1D)      [null,1,10]               290       
_________________________________________________________________
dense_Dense1 (Dense)         [null,1,7]                77        
=================================================================
Total params: 367
Trainable params: 367
Non-trainable params: 0
_________________________________________________________________

Example 2: In this example, we will see how the convolution layer filter the input data as per the configuration. Here we make convolution layer with the inputShape ,filter , kernelSize ,activation and compile the model with it. With the convolution layer filtered we use predict function for the input data.

Javascript




import * as tf from "@tensorflow/tfjs"
 
// Input Layer for model
const geek_config = {shape:[3,4]};
const geek_InputL = tf.input(geek_config);
console.log(`Input layer shape : ${geek_InputL.shape}`);
 
// Convolution For the model 
const geek_config2 = {
  filters:2,kernelSize:2                        
 ,inputShape:[3,4],
  activation: 'sigmoid'};
const geek_convLayer = tf.layers.conv1d(geek_config2).apply(geek_InputL);
console.log(`Convolution layer shape : ${geek_convLayer.shape}`);
 
// Adding layer to the model
const geek_config3 = {inputs:geek_InputL, outputs:geek_convLayer};
const model = tf.model(geek_config3);
// Compiling the model
const geek_config4 = {optimizer:'sgd',loss:'meanSquaredError'};
model.compile(geek_config4);
 
// Predicting the value for the input
const geek_Test = tf.randomUniform([3,3,4]);
model.predict(geek_Test).print();


Output: 

Input layer shape : ,3,4
Convolution layer shape : ,2,2
Tensor
    [[[0.5468831, 0.4990641],
      [0.3059803, 0.4743758]],

     [[0.4450175, 0.4848864],
      [0.3678558, 0.4276305]],

     [[0.4802476, 0.5687023],
      [0.4083693, 0.4854257]]]

Reference: https://js.tensorflow.org/api/3.6.0/#layers.conv1d   



Last Updated : 12 Dec, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads