Class DSpatialConvolve2D_F64

java.lang.Object
deepboof.impl.forward.standard.BaseFunction<T>
deepboof.impl.forward.standard.BaseSpatialWindow<T,​P>
deepboof.impl.forward.standard.SpatialWindowImage<T,​P>
deepboof.impl.backward.standard.DSpatialWindowImage<deepboof.tensors.Tensor_F64,​DSpatialPadding2D_F64>
deepboof.impl.backward.standard.DSpatialConvolve2D_F64
All Implemented Interfaces:
DSpatialConvolve2D<deepboof.tensors.Tensor_F64>, deepboof.DFunction<deepboof.tensors.Tensor_F64>, deepboof.forward.SpatialConvolve2D<deepboof.tensors.Tensor_F64>, deepboof.Function<deepboof.tensors.Tensor_F64>

public class DSpatialConvolve2D_F64
extends DSpatialWindowImage<deepboof.tensors.Tensor_F64,​DSpatialPadding2D_F64>
implements DSpatialConvolve2D<deepboof.tensors.Tensor_F64>
Implementation of DSpatialConvolve2D for Tensor_F64.

Local caches of the spatial tensor are used to reduce cache misses. The cache will contain a region across all of the tensor's channels that encompasses the region that a single convolution would interact with. In the backwards pass the local cache is written back into the derivative padded input tensor.

  • Field Summary

    Fields
    Modifier and Type Field Description
    protected deepboof.tensors.Tensor_F64 bias  
    protected double[] cachedDPadding  
    protected double[] cachedPadded  
    protected deepboof.tensors.Tensor_F64 dBias  
    protected deepboof.tensors.Tensor_F64 dout  
    protected deepboof.tensors.Tensor_F64 dWeights  
    protected int F  
    protected deepboof.tensors.Tensor_F64 weights  

    Fields inherited from class deepboof.impl.backward.standard.DSpatialWindowImage

    dpadding, learningMode

    Fields inherited from class deepboof.impl.forward.standard.SpatialWindowImage

    output

    Fields inherited from class deepboof.impl.forward.standard.BaseSpatialWindow

    C, config, H, HH, Ho, Hp, N, padding, W, Wo, Wp, WW

    Fields inherited from class deepboof.impl.forward.standard.BaseFunction

    miniBatchSize, parameters, shapeInput, shapeOutput, shapeParameters
  • Constructor Summary

    Constructors
    Constructor Description
    DSpatialConvolve2D_F64​(deepboof.forward.ConfigConvolve2D config, DSpatialPadding2D_F64 padding)  
  • Method Summary

    Modifier and Type Method Description
    protected void _backwards​(deepboof.tensors.Tensor_F64 input, deepboof.tensors.Tensor_F64 dout, deepboof.tensors.Tensor_F64 gradientInput, List<deepboof.tensors.Tensor_F64> gradientParameters)  
    void _forward​(deepboof.tensors.Tensor_F64 input, deepboof.tensors.Tensor_F64 output)  
    void _initialize()  
    void _setParameters​(List<deepboof.tensors.Tensor_F64> parameters)  
    protected void backwardsAt_border​(DSpatialPadding2D_F64 padded, int batch, int padY, int padX, int outY, int outX)
    Applies the operations at the specified window and stores the results at the specified output coordinate.
    protected void backwardsAt_inner​(deepboof.tensors.Tensor_F64 input, int batch, int inY, int inX, int outY, int outX)
    Applies the operations at the specified window and stores the results at the specified output coordinate.
    protected void forwardAt_border​(DSpatialPadding2D_F64 padded, int batch, int padY, int padX, int outY, int outX)  
    protected void forwardAt_inner​(deepboof.tensors.Tensor_F64 input, int batch, int inY, int inX, int outY, int outX)  
    deepboof.forward.ConfigConvolve2D getConfiguration()  

    Methods inherited from class deepboof.impl.backward.standard.DSpatialWindowImage

    backwards, backwardsImage, evaluating, getTensorType, isLearning, learning

    Methods inherited from class deepboof.impl.forward.standard.SpatialWindowImage

    forwardImage

    Methods inherited from class deepboof.impl.forward.standard.BaseSpatialWindow

    getPadding, innerLowerExtent, innerUpperExtent, isEntirelyBorder

    Methods inherited from class deepboof.impl.forward.standard.BaseFunction

    forward, getOutputShape, getParameters, getParameterShapes, initialize, setParameters

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface deepboof.DFunction

    backwards, evaluating, isLearning, learning

    Methods inherited from interface deepboof.Function

    getOutputShape, getParameters, getParameterShapes, getTensorType, initialize

    Methods inherited from interface deepboof.forward.SpatialConvolve2D

    forward, getPadding, setParameters
  • Field Details

    • F

      protected int F
    • weights

      protected deepboof.tensors.Tensor_F64 weights
    • bias

      protected deepboof.tensors.Tensor_F64 bias
    • dWeights

      protected deepboof.tensors.Tensor_F64 dWeights
    • dBias

      protected deepboof.tensors.Tensor_F64 dBias
    • dout

      protected deepboof.tensors.Tensor_F64 dout
    • cachedPadded

      protected double[] cachedPadded
    • cachedDPadding

      protected double[] cachedDPadding
  • Constructor Details

    • DSpatialConvolve2D_F64

      public DSpatialConvolve2D_F64​(deepboof.forward.ConfigConvolve2D config, DSpatialPadding2D_F64 padding)
  • Method Details

    • _setParameters

      public void _setParameters​(List<deepboof.tensors.Tensor_F64> parameters)
      Specified by:
      _setParameters in class deepboof.impl.forward.standard.BaseFunction<deepboof.tensors.Tensor_F64>
    • _initialize

      public void _initialize()
      Overrides:
      _initialize in class deepboof.impl.forward.standard.BaseSpatialWindow<deepboof.tensors.Tensor_F64,​DSpatialPadding2D_F64>
    • _forward

      public void _forward​(deepboof.tensors.Tensor_F64 input, deepboof.tensors.Tensor_F64 output)
      Specified by:
      _forward in class deepboof.impl.forward.standard.BaseFunction<deepboof.tensors.Tensor_F64>
    • forwardAt_inner

      protected void forwardAt_inner​(deepboof.tensors.Tensor_F64 input, int batch, int inY, int inX, int outY, int outX)
      Specified by:
      forwardAt_inner in class deepboof.impl.forward.standard.SpatialWindowImage<deepboof.tensors.Tensor_F64,​DSpatialPadding2D_F64>
    • forwardAt_border

      protected void forwardAt_border​(DSpatialPadding2D_F64 padded, int batch, int padY, int padX, int outY, int outX)
      Specified by:
      forwardAt_border in class deepboof.impl.forward.standard.SpatialWindowImage<deepboof.tensors.Tensor_F64,​DSpatialPadding2D_F64>
    • _backwards

      protected void _backwards​(deepboof.tensors.Tensor_F64 input, deepboof.tensors.Tensor_F64 dout, deepboof.tensors.Tensor_F64 gradientInput, List<deepboof.tensors.Tensor_F64> gradientParameters)
      Specified by:
      _backwards in class DSpatialWindowImage<deepboof.tensors.Tensor_F64,​DSpatialPadding2D_F64>
    • backwardsAt_inner

      protected void backwardsAt_inner​(deepboof.tensors.Tensor_F64 input, int batch, int inY, int inX, int outY, int outX)
      Description copied from class: DSpatialWindowImage
      Applies the operations at the specified window and stores the results at the specified output coordinate.
      Specified by:
      backwardsAt_inner in class DSpatialWindowImage<deepboof.tensors.Tensor_F64,​DSpatialPadding2D_F64>
      Parameters:
      input - Input spatial tensor
      batch - Index of input in mini-batch that is being processed
      inY - y-axis lower extent, in input coordinates
      inX - x-axis lower extent, in input coordinates
      outY - y-axis output coordinates
      outX - x-axis output coordinates
    • backwardsAt_border

      protected void backwardsAt_border​(DSpatialPadding2D_F64 padded, int batch, int padY, int padX, int outY, int outX)
      Description copied from class: DSpatialWindowImage
      Applies the operations at the specified window and stores the results at the specified output coordinate. For virtual tensor
      Specified by:
      backwardsAt_border in class DSpatialWindowImage<deepboof.tensors.Tensor_F64,​DSpatialPadding2D_F64>
      Parameters:
      padded - Padded input spatial virtual tensor
      batch - Index of input in mini-batch that is being processed
      padY - y-axis lower extent, inclusive. Padded coordinates
      padX - x-axis lower extent, inclusive. Padded coordinates
      outY - y-axis output coordinates
      outX - x-axis output coordinates
    • getConfiguration

      public deepboof.forward.ConfigConvolve2D getConfiguration()
      Specified by:
      getConfiguration in interface deepboof.forward.SpatialConvolve2D<deepboof.tensors.Tensor_F64>