Deconvolution Layer

Specialization of the Layer for Deconvolution in Convolutional Neural Networks. Should contain the same arguments for kernel/padding/stride as the respective Convolution layer that is inverted. The resulting image-size is given as \(IH\times IW\). The number of _outputChannels=:math:IHcdot IWcdot IC must be specified such that the number of input channels \(IC\) takes the wished value.

Usage

eLayer/Deconvolution"

Configuration

These are settings required by this module.

Image Height
  • Usage: e[“Image Height”] = s*unsigned integer*

  • Description: Height of the incoming 2D image.

Image Width
  • Usage: e[“Image Width”] = s*unsigned integer*

  • Description: Width of the incoming 2D image.

Kernel Height
  • Usage: e[“Kernel Height”] = s*unsigned integer*

  • Description: Height of the incoming 2D image.

Kernel Width
  • Usage: e[“Kernel Width”] = s*unsigned integer*

  • Description: Width of the incoming 2D image.

Vertical Stride
  • Usage: e[“Vertical Stride”] = s*unsigned integer*

  • Description: Strides for the image on the vertical dimension.

Horizontal Stride
  • Usage: e[“Horizontal Stride”] = s*unsigned integer*

  • Description: Strides for the image on the horizontal dimension.

Padding Left
  • Usage: e[“Padding Left”] = s*unsigned integer*

  • Description: Paddings for the image left side.

Padding Right
  • Usage: e[“Padding Right”] = s*unsigned integer*

  • Description: Paddings for the image right side.

Padding Top
  • Usage: e[“Padding Top”] = s*unsigned integer*

  • Description: Paddings for the image top side.

Padding Bottom
  • Usage: e[“Padding Bottom”] = s*unsigned integer*

  • Description: Paddings for the image Bottom side.

Output Channels
  • Usage: e[“Output Channels”] = unsigned integer

  • Description: Indicates the size of the output vector produced by the layer.

Weight Scaling
  • Usage: e[“Weight Scaling”] = float

  • Description: Factor that is mutliplied by the layers’ weights.

Engine
  • Usage: e[“Engine”] = string

  • Description: Specifies which Neural Network backend engine to use.

  • Options:

    • Korali”: Uses Korali’s lightweight NN support. (CPU Sequential - Does not require installing third party software other than Eigen)

    • OneDNN”: Uses oneDNN as NN support. (CPU Sequential/Parallel - Requires installing oneDNN)

    • CuDNN”: Uses cuDNN as NN support. (GPU - Requires installing cuDNN)

Mode
  • Usage: e[“Mode”] = string

  • Description: Specifies the execution mode of the Neural Network.

  • Options:

    • Training”: Use for training. Stores data during forward propagation and allows backward propagation.

    • Inference”: Use for inference only. Only runs forward propagation. Faster for inference.

Layers
  • Usage: e[“Layers”] = knlohmann::json

  • Description: Complete description of the NN’s layers.

Timestep Count
  • Usage: e[“Timestep Count”] = unsigned integer

  • Description: Provides the sequence length for the input/output data.

Batch Sizes
  • Usage: e[“Batch Sizes”] = List of unsigned integer

  • Description: Specifies the batch sizes.

Default Configuration

These following configuration will be assigned by default. Any settings defined by the user will override the given settings specified in these defaults.

{
"Batch Sizes": [],
"Engine": "Korali",
"Input Values": [],
"Output Channels": 0,
"Uniform Generator": {
    "Maximum": 1.0,
    "Minimum": -1.0,
    "Name": "Neural Network / Uniform Generator",
    "Type": "Univariate/Uniform"
    },
"Weight Scaling": 1.0
}