TensorSpace.js
Getting Start
Basic Concepts
Model Preprocessing
Models
Layers
Merge Function
Conv2d
Conv2d layer is often used in image processing model and extract the feature from the images.
Constructor
Two methods to create a new layer. Arguments are required.
〔Method 1〕Use filters, kernelSize and strides (Support two formats)
Rectangle kernel and stride(same height and width)
TSP.layers.Conv2d( { filters : Int, kernelSize: Int, strides: Int } );
Kernel and stride with different width(first) and height(second)
TSP.layers.Conv2d( { filters : Int, kernelSize: [Int, Int], strides: [Int, Int] } );
〔Method 2〕Use shape, the 3-dimension is the amount of filters
TSP.layers.Conv2d( { shape : [ Int, Int, Int ] } )
Fig. 1 - Conv2d layer collapse and expand
Arguments

Name

Tag

Type

Instruction

Usage Notes and Examples

filters

📦

Int Amount of filters, not require if use shape to construct filters: 16

name

🔧

String Name of this layer. Highly recommend to arrange to make code more readable. name: "layerName"

padding

🔧📦

String Is padding?

valid(default) Without padding. It drops the right-most columns (or bottom-most rows).

same With padding. Output size is the same as input size.

shape

⚙️📦

Int[] Output shape Data format is channel last. For example, shape = [ 28, 28, 6 ] represents 6 feature maps and each one is 28 by 28.

kernelSize

⚙️📦

Int The dimension of the convolution window The 2d convolutional window is square. kernelSize: 3

strides

⚙️📦

Int The strides of the convolution Strides in both dimensions are equal [default] Automatic inference strides = [1, 1]

color

⚙️🎨

color format Color of layer Conv2d default is light yellow #FFFF2E

closeButton

⚙️🎨

Dict Close button appearance control dict, more about close button

display : Boolean. true[default] Show button, false Hide button

ratio : Int. Times to normal size, default is 1

For example, 2 means twice the normal size

initStatus

⚙️️🎦

String Layer status at beginning. Open or Close close[default] : Closed at beginning

animeTime

⚙️🎦

Int The speed of open and close animation For example, 2000 means 2 seconds. Note: Configure animeTime in a specific layer will override model's animeTime configuration.
Properties
.inputShape : Int[]
filter_center_focusThe shape of input tensor. For example, inputShape = [ 28, 28, 3 ] represents 3 feature maps and each one is 28 by 28.
filter_center_focusAfter model.init() data is available, otherwise is undefined.
.outputShape : Int[]
filter_center_focusThe shape of the output tensor is 3-dimensional. 3️⃣
filter_center_focusThe dataFormat is "channel last". For example, outputShape = [ 32, 32, 4 ] represents the output through this layer has 4 feature maps and each one is 32 by 32.
filter_center_focusAfter model.init() data is available, otherwise is undefined.
.neuralValue : Float[]
filter_center_focusThe intermediate raw data after this layer.
filter_center_focusAfter load and model.init(), the data are available. Otherwise is undefined.
.name : String
filter_center_focusThe custom name for this layer.
filter_center_focusOnce created, you can get it.
.layerType : String
filter_center_focusType of this layer, return a constant: string Conv2d.
filter_center_focusOnce created, you can get it.
Method
filter_center_focusThis method only used in Functional Model (Non-sequential, Graph structure).
filter_center_focusLink this layer to layer which is the previous layer.
filter_center_focusTo crete a link between this layer and the previous layer. You don't need to use this method specifically to create links in Sequential Model; Instead, you can simply add layers along the lines of Keras or TensorFlow.js build the model syntax.
let inputLayer = new TSP.layers.GreyscaleInput( {

    shape: [28, 28]

} );

let convLayer = new TSP.layers.Conv2d( {

    kernelSize: 2,
    filters: 16,
    strides: 1

} );

convLayer.apply( inputLayer );
.openLayer() : void
filter_center_focusClick on the layer directly to open it by interacting directly with the object in the 3D scene.
Fig. 2 - Click to open Conv2d layer
filter_center_focusIn code, calling the method to open it.
let conv2dLayer = new TSP.layers.Conv2d( {

    // configure some parameters for Conv2d.

} );

model.add( conv2dLayer );

// ... add more layers for model.

model.init();

// Call openLayer API to open layer.

conv2dLayer.openLayer();
filter_center_focusTo close by interacting directly with objects in a 3D scene by clicking the close button.
Fig. 3 - Click to close Conv2d layer
filter_center_focus In code, calling the method to close it.
let conv2dLayer = new TSP.layers.Conv2d( {

    // configure some parameters for Conv2d.

} );

model.add( conv2dLayer );

// ... add more layers for model.

model.init();

// If this layer already opened, call closeLayer API to close layer.

conv2dLayer.closeLayer();
Example
filter_center_focus Declare an instance of Conv2D to facilitate reuse
let convLayer = new TSP.layers.Conv2d( {

    kernelSize: 5,
    filters: 6,
    strides: 1,
    animeTime: 4000,
    name: "conv2d1",
    initStatus: "open"

} );

model.add( convLayer );
filter_center_focusAdd Conv2D directly
model.add(new TSP.layers.Conv2d( {

    kernelSize: 5,
    filters: 16,
    strides: 1,
    name: "conv2d2"

} ));
Use Case
When you add convolutional layer with Keras | TensorFlow | tfjs in your model the corresponding API is Conv2d in TensorSpace.
Framework Documentation
Keras keras.layers.Conv2D(filters, kernel_size, strides=(1, 1))
TensorFlow tf.nn.conv2d(input, filter, strides, padding)
TensorFlow.js tf.layers.conv2d (filters, inputShape)
Tag Lookup
Tag Icon Meaning Instruction
⭐️ Required Must be provided, cannot be empty. Meanwhile constructor works properly if this arguments provided. Control arguments use default value.
🔧 Suggest Recommended for giving. The API can work without them.
⚙️️ Optional As an auxiliary adjustment parameter when used, selectively added according to the specific situation The parameters here have no effect on the structure of the layer (3D visualized form).
📦 Model Configure the properties of the Layer. It changes the output shape.
🎨 Style Override the properties in TSP.model (model configuration)
🎦 Animation Override the properties in TSP.model (model configuration)
Source Code
tensorspace/src/layer/intermediate/Conv2d.js