Class Conv2dTranspose

All Implemented Interfaces:
Block

public class Conv2dTranspose extends Deconvolution
The input to a Conv2dTranspose is an NDList with a single 4-D NDArray. The layout of the NDArray must be "NCHW". The shapes are
  • data: (batch_size, channel, height, width)
  • weight: (num_filter, channel, kernel[0], kernel[1])
  • bias: (num_filter,)
  • out: (batch_size, num_filter, out_height, out_width)
    out_height = f(height, kernel[0], pad[0], oPad[0], stride[0], dilate[0])
    out_width = f(width, kernel[1], pad[1], oPad[1], stride[1], dilate[1])
    where f(x, k, p, oP, s, d) = (x-1)*s-2*p+k+oP

Both weight and bias are learn-able parameters.

See Also:
  • Method Details

    • getExpectedLayout

      protected LayoutType[] getExpectedLayout()
      Returns the expected layout of the input.
      Specified by:
      getExpectedLayout in class Deconvolution
      Returns:
      the expected layout of the input
    • getStringLayout

      protected String getStringLayout()
      Returns the string representing the layout of the input.
      Specified by:
      getStringLayout in class Deconvolution
      Returns:
      the string representing the layout of the input
    • numDimensions

      protected int numDimensions()
      Returns the number of dimensions of the input.
      Specified by:
      numDimensions in class Deconvolution
      Returns:
      the number of dimensions of the input
    • conv2dTranspose

      public static NDList conv2dTranspose(NDArray input, NDArray weight)
      Applies 2D deconvolution over an input signal composed of several input planes.
      Parameters:
      input - the input NDArray of shape (batchSize, inputChannel, height, width)
      weight - filters NDArray of shape (outChannel, inputChannel/groups, height, width)
      Returns:
      the output of the conv2dTranspose operation
    • conv2dTranspose

      public static NDList conv2dTranspose(NDArray input, NDArray weight, NDArray bias)
      Applies 2D deconvolution over an input signal composed of several input planes.
      Parameters:
      input - the input NDArray of shape (batchSize, inputChannel, height, width)
      weight - filters NDArray of shape (outChannel, inputChannel/groups, height, width)
      bias - bias NDArray of shape (outChannel)
      Returns:
      the output of the conv2dTranspose operation
    • conv2dTranspose

      public static NDList conv2dTranspose(NDArray input, NDArray weight, NDArray bias, Shape stride)
      Applies 2D deconvolution over an input signal composed of several input planes.
      Parameters:
      input - the input NDArray of shape (batchSize, inputChannel, height, width)
      weight - filters NDArray of shape (outChannel, inputChannel/groups, height, width)
      bias - bias NDArray of shape (outChannel)
      stride - the stride of the deconvolving kernel: Shape(height, width)
      Returns:
      the output of the conv2dTranspose operation
    • conv2dTranspose

      public static NDList conv2dTranspose(NDArray input, NDArray weight, NDArray bias, Shape stride, Shape padding)
      Applies 2D deconvolution over an input signal composed of several input planes.
      Parameters:
      input - the input NDArray of shape (batchSize, inputChannel, height, width)
      weight - filters NDArray of shape (outChannel, inputChannel/groups, height, width)
      bias - bias NDArray of shape (outChannel)
      stride - the stride of the deconvolving kernel: Shape(height, width)
      padding - implicit paddings on both sides of the input: Shape(height, width)
      Returns:
      the output of the conv2dTranspose operation
    • conv2dTranspose

      public static NDList conv2dTranspose(NDArray input, NDArray weight, NDArray bias, Shape stride, Shape padding, Shape outPadding)
      Applies 2D deconvolution over an input signal composed of several input planes.
      Parameters:
      input - the input NDArray of shape (batchSize, inputChannel, height, width)
      weight - filters NDArray of shape (outChannel, inputChannel/groups, height, width)
      bias - bias NDArray of shape (outChannel)
      stride - the stride of the deconvolving kernel: Shape(height, width)
      padding - implicit paddings on both sides of the input: Shape(height, width)
      outPadding - Controls the amount of implicit zero-paddings on both sides of the output for outputPadding number of points for each dimension.
      Returns:
      the output of the conv2dTranspose operation
    • conv2dTranspose

      public static NDList conv2dTranspose(NDArray input, NDArray weight, NDArray bias, Shape stride, Shape padding, Shape outPadding, Shape dilation)
      Applies 2D deconvolution over an input signal composed of several input planes.
      Parameters:
      input - the input NDArray of shape (batchSize, inputChannel, height, width)
      weight - filters NDArray of shape (outChannel, inputChannel/groups, height, width)
      bias - bias NDArray of shape (outChannel)
      stride - the stride of the deconvolving kernel: Shape(height, width)
      padding - implicit paddings on both sides of the input: Shape(height, width)
      outPadding - Controls the amount of implicit zero-paddings on both sides of the output for outputPadding number of points for each dimension.
      dilation - the spacing between kernel elements: Shape(height, width)
      Returns:
      the output of the conv2dTranspose operation
    • conv2dTranspose

      public static NDList conv2dTranspose(NDArray input, NDArray weight, NDArray bias, Shape stride, Shape padding, Shape outPadding, Shape dilation, int groups)
      Applies 2D deconvolution over an input signal composed of several input planes.
      Parameters:
      input - the input NDArray of shape (batchSize, inputChannel, height, width)
      weight - filters NDArray of shape (outChannel, inputChannel/groups, height, width)
      bias - bias NDArray of shape (outChannel)
      stride - the stride of the deconvolving kernel: Shape(height, width)
      padding - implicit paddings on both sides of the input: Shape(height, width)
      outPadding - Controls the amount of implicit zero-paddings on both sides of the output for outputPadding number of points for each dimension. Shape(height, width)
      dilation - the spacing between kernel elements: Shape(height, width)
      groups - split input into groups: input channel(input.size(1)) should be divisible by the number of groups
      Returns:
      the output of the conv2dTranspose operation
    • builder

      public static Conv2dTranspose.Builder builder()
      Creates a builder to build a Conv2dTranspose.
      Returns:
      a new builder