Class BaseDynamicCustomReduction

  • All Implemented Interfaces:
    CustomOp
    Direct Known Subclasses:
    BaseDynamicCustomBoolReduction, BaseDynamicCustomIndexReduction, BaseDynamicCustomLongReduction

    public abstract class BaseDynamicCustomReduction
    extends DynamicCustomOp
    Base class for reduction. 3 main properties matter for any sub class: 1. Dimensions can either be an input variable (SDVariable/INDArray) or int arguments. 2. If you want the dimensions passed as int arguments, pass in the int dimensions array as a constructor. 3. Keep dimensions preserves the rank of the output array relative to the input even when doing a reduce.
    Author:
    Adam Gibson
    • Field Detail

      • keepDims

        protected boolean keepDims
      • isComplex

        protected boolean isComplex
      • isEmptyReduce

        protected boolean isEmptyReduce
      • dimensions

        protected int[] dimensions
    • Constructor Detail

      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction()
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(SameDiff sameDiff,
                                          SDVariable[] args,
                                          boolean keepDims)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(SameDiff sameDiff,
                                          SDVariable[] args,
                                          boolean keepDims,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(SameDiff sameDiff,
                                          SDVariable[] args,
                                          boolean keepDims,
                                          boolean isComplex)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(SameDiff sameDiff,
                                          SDVariable[] args,
                                          boolean keepDims,
                                          boolean isComplex,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(INDArray[] inputs,
                                          INDArray[] outputs)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(INDArray[] inputs,
                                          INDArray[] outputs,
                                          boolean keepDims)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(INDArray[] inputs,
                                          INDArray[] outputs,
                                          boolean keepDims,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(INDArray[] inputs,
                                          boolean keepDims,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(boolean keepDims,
                                          boolean isComplex,
                                          boolean isEmptyReduce,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(SameDiff sameDiff,
                                          SDVariable arg,
                                          boolean keepDims,
                                          boolean isComplex,
                                          boolean isEmptyReduce,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(SameDiff sameDiff,
                                          SDVariable[] args,
                                          boolean keepDims,
                                          boolean isComplex,
                                          boolean isEmptyReduce,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(String opName,
                                          SameDiff sameDiff,
                                          SDVariable[] args,
                                          boolean keepDims,
                                          boolean isComplex,
                                          boolean isEmptyReduce,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(String opName,
                                          INDArray input,
                                          INDArray output,
                                          List<Double> tArguments,
                                          int[] iArguments,
                                          boolean keepDims,
                                          boolean isComplex,
                                          boolean isEmptyReduce,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(String opName,
                                          INDArray[] inputs,
                                          INDArray[] outputs,
                                          List<Double> tArguments,
                                          int[] iArguments,
                                          boolean keepDims,
                                          boolean isComplex,
                                          boolean isEmptyReduce,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(String opName,
                                          INDArray[] inputs,
                                          INDArray[] outputs,
                                          List<Double> tArguments,
                                          List<Integer> iArguments,
                                          boolean keepDims,
                                          boolean isComplex,
                                          boolean isEmptyReduce,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(INDArray[] inputs,
                                          INDArray[] outputs,
                                          boolean keepDims,
                                          boolean isComplex,
                                          boolean isEmptyReduce,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(String opName,
                                          INDArray[] inputs,
                                          INDArray[] outputs,
                                          boolean keepDims,
                                          boolean isComplex,
                                          boolean isEmptyReduce,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(String opName,
                                          SameDiff sameDiff,
                                          SDVariable[] args,
                                          boolean inPlace,
                                          boolean keepDims,
                                          boolean isComplex,
                                          boolean isEmptyReduce,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(SameDiff sameDiff,
                                          SDVariable[] args,
                                          boolean inPlace,
                                          boolean keepDims,
                                          boolean isComplex,
                                          boolean isEmptyReduce,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(String opName,
                                          boolean keepDims,
                                          boolean isComplex,
                                          boolean isEmptyReduce,
                                          int[] dimensions)
      • BaseDynamicCustomReduction

        public BaseDynamicCustomReduction​(INDArray[] input,
                                          INDArray[] output,
                                          boolean keepDims,
                                          boolean isComplex,
                                          int[] dimensions)
    • Method Detail

      • addArgs

        protected void addArgs()
      • calculateOutputDataTypes

        public List<DataType> calculateOutputDataTypes​(List<DataType> dataTypes)
        Calculate the data types for the output arrays. Though datatypes can also be inferred from DynamicCustomOp.calculateOutputShape(), this method differs in that it does not require the input arrays to be populated. This is important as it allows us to do greedy datatype inference for the entire net - even if arrays are not available.
        Overrides:
        calculateOutputDataTypes in class DifferentialFunction
        Parameters:
        dataTypes - The data types of the inputs
        Returns:
        The data types of the outputs