Class BaseDynamicCustomReduction
- java.lang.Object
-
- org.nd4j.autodiff.functions.DifferentialFunction
-
- org.nd4j.linalg.api.ops.DynamicCustomOp
-
- org.nd4j.linalg.api.ops.impl.reduce.custom.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
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.nd4j.linalg.api.ops.DynamicCustomOp
DynamicCustomOp.DynamicCustomOpsBuilder
-
-
Field Summary
Fields Modifier and Type Field Description protected int[]
dimensions
protected boolean
isComplex
protected boolean
isEmptyReduce
protected boolean
keepDims
-
Fields inherited from class org.nd4j.linalg.api.ops.DynamicCustomOp
axis, bArguments, dArguments, iArguments, inplaceCall, inputArguments, outputArguments, outputVariables, sArguments, tArguments
-
Fields inherited from class org.nd4j.autodiff.functions.DifferentialFunction
extraArgs, inPlace, ownName, ownNameSetWithDefault, sameDiff, scalarValue
-
-
Constructor Summary
Constructors Constructor Description BaseDynamicCustomReduction()
BaseDynamicCustomReduction(boolean keepDims, boolean isComplex, boolean isEmptyReduce, int[] dimensions)
BaseDynamicCustomReduction(String opName, boolean keepDims, boolean isComplex, boolean isEmptyReduce, int[] dimensions)
BaseDynamicCustomReduction(String opName, SameDiff sameDiff, SDVariable[] args, boolean inPlace, boolean keepDims, boolean isComplex, boolean isEmptyReduce, int[] dimensions)
BaseDynamicCustomReduction(String opName, SameDiff sameDiff, SDVariable[] args, boolean keepDims, boolean isComplex, boolean isEmptyReduce, int[] dimensions)
BaseDynamicCustomReduction(String opName, INDArray[] inputs, INDArray[] outputs, boolean keepDims, boolean isComplex, boolean isEmptyReduce, int[] dimensions)
BaseDynamicCustomReduction(String opName, INDArray[] inputs, INDArray[] outputs, List<Double> tArguments, int[] iArguments, boolean keepDims, boolean isComplex, boolean isEmptyReduce, int[] dimensions)
BaseDynamicCustomReduction(String opName, INDArray[] inputs, INDArray[] outputs, List<Double> tArguments, List<Integer> iArguments, boolean keepDims, boolean isComplex, boolean isEmptyReduce, int[] dimensions)
BaseDynamicCustomReduction(String opName, INDArray input, INDArray output, List<Double> tArguments, int[] iArguments, boolean keepDims, boolean isComplex, boolean isEmptyReduce, int[] dimensions)
BaseDynamicCustomReduction(SameDiff sameDiff, SDVariable[] args, boolean keepDims)
BaseDynamicCustomReduction(SameDiff sameDiff, SDVariable[] args, boolean keepDims, boolean isComplex)
BaseDynamicCustomReduction(SameDiff sameDiff, SDVariable[] args, boolean inPlace, boolean keepDims, boolean isComplex, boolean isEmptyReduce, int[] dimensions)
BaseDynamicCustomReduction(SameDiff sameDiff, SDVariable[] args, boolean keepDims, boolean isComplex, boolean isEmptyReduce, int[] dimensions)
BaseDynamicCustomReduction(SameDiff sameDiff, SDVariable[] args, boolean keepDims, boolean isComplex, int[] dimensions)
BaseDynamicCustomReduction(SameDiff sameDiff, SDVariable[] args, boolean keepDims, int[] dimensions)
BaseDynamicCustomReduction(SameDiff sameDiff, SDVariable arg, boolean keepDims, boolean isComplex, boolean isEmptyReduce, int[] dimensions)
BaseDynamicCustomReduction(INDArray[] inputs, boolean keepDims, int[] dimensions)
BaseDynamicCustomReduction(INDArray[] inputs, INDArray[] outputs)
BaseDynamicCustomReduction(INDArray[] inputs, INDArray[] outputs, boolean keepDims)
BaseDynamicCustomReduction(INDArray[] inputs, INDArray[] outputs, boolean keepDims, boolean isComplex, boolean isEmptyReduce, int[] dimensions)
BaseDynamicCustomReduction(INDArray[] input, INDArray[] output, boolean keepDims, boolean isComplex, int[] dimensions)
BaseDynamicCustomReduction(INDArray[] inputs, INDArray[] outputs, boolean keepDims, int[] dimensions)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addArgs()
List<DataType>
calculateOutputDataTypes(List<DataType> dataTypes)
Calculate the data types for the output arrays.abstract String
opName()
This method returns op opName as string-
Methods inherited from class org.nd4j.linalg.api.ops.DynamicCustomOp
addBArgument, addDArgument, addIArgument, addIArgument, addInputArgument, addOutputArgument, addOutputsToOp, addSArgument, addTArgument, assertValidForExecution, bArgs, builder, calculateOutputShape, calculateOutputShape, clearArrays, computeArrays, configureFromArguments, dArgs, doDiff, generateFake, generateFake, getBArgument, getDescriptor, getIArgument, getInputArgument, getOutputArgument, getSArgument, getTArgument, getValue, iArgs, initFromOnnx, initFromTensorFlow, inputArguments, mappingsForFunction, numBArguments, numDArguments, numIArguments, numInputArguments, numOutputArguments, numSArguments, numTArguments, onnxName, opHash, opNum, opType, outputArguments, outputVariables, outputVariables, propertiesForFunction, removeIArgument, removeInputArgument, removeOutputArgument, removeSArgument, removeTArgument, sArgs, setInputArgument, setInputArguments, setOutputArgument, setPropertiesForFunction, setValueFor, tArgs, tensorflowName, toString, wrapFilterNull, wrapOrNull, wrapOrNull
-
Methods inherited from class org.nd4j.autodiff.functions.DifferentialFunction
arg, arg, argNames, args, attributeAdaptersForFunction, configFieldName, configureWithSameDiff, diff, dup, equals, getBooleanFromProperty, getDoubleValueFromProperty, getIntValueFromProperty, getLongValueFromProperty, getNumOutputs, getStringFromProperty, hashCode, isConfigProperties, larg, onnxNames, outputs, outputVariable, outputVariablesNames, rarg, replaceArg, setInstanceId, tensorflowNames
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.nd4j.linalg.api.ops.CustomOp
isInplaceCall
-
-
-
-
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)
-
-
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 fromDynamicCustomOp.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 classDifferentialFunction
- Parameters:
dataTypes
- The data types of the inputs- Returns:
- The data types of the outputs
-
opName
public abstract String opName()
Description copied from class:DynamicCustomOp
This method returns op opName as string- Specified by:
opName
in interfaceCustomOp
- Overrides:
opName
in classDynamicCustomOp
- Returns:
-
-