Class TensorMmul
- java.lang.Object
-
- org.nd4j.autodiff.functions.DifferentialFunction
-
- org.nd4j.linalg.api.ops.DynamicCustomOp
-
- org.nd4j.linalg.api.ops.impl.reduce.TensorMmul
-
- All Implemented Interfaces:
CustomOp
public class TensorMmul extends DynamicCustomOp
TensorMmul- 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 boolean
addedEdges
protected MMulTranspose
mMulTranspose
-
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
dimensions, extraArgs, inPlace, ownName, ownNameSetWithDefault, sameDiff, scalarValue
-
-
Constructor Summary
Constructors Constructor Description TensorMmul(SameDiff sameDiff, SDVariable i_v1, SDVariable i_v2, int[][] dimensions)
TensorMmul(SameDiff sameDiff, SDVariable i_v1, SDVariable i_v2, int[][] dimensions, MMulTranspose mMulTranspose)
TensorMmul(SameDiff sameDiff, SDVariable x, SDVariable y, int[] dimensionsX, int[] dimensionsY, boolean transposeX, boolean transposeY, boolean transposeZ)
TensorMmul(INDArray x, INDArray y, int[][] axes)
TensorMmul(INDArray x, INDArray y, int[] dimensionsX, int[] dimensionsY, boolean transposeX, boolean transposeY, boolean transposeZ)
TensorMmul(INDArray x, INDArray y, INDArray z, int[][] axes)
Initialize with the given input, pairwise transform, result, and number of elements
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<DataType>
calculateOutputDataTypes(List<DataType> inputDataTypes)
Calculate the data types for the output arrays.void
configureFromArguments()
This allows a custom op to configure relevant fields from its arguments.List<SDVariable>
doDiff(List<SDVariable> gradients)
The actual implementation for automatic differentiation.boolean
equals(Object o)
int
hashCode()
void
initFromOnnx(Onnx.NodeProto node, SameDiff initWith, Map<String,Onnx.AttributeProto> attributesForNode, Onnx.GraphProto graph)
Iniitialize the function from the givenOnnx.NodeProto
void
initFromTensorFlow(NodeDef nodeDef, SameDiff initWith, Map<String,AttrValue> attributesForNode, GraphDef graph)
Initialize the function from the givenNodeDef
String
onnxName()
The opName of this function in onnxString
opName()
This method returns op opName as stringOp.Type
opType()
The type of the opvoid
setPropertiesForFunction(Map<String,Object> properties)
-
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, dArgs, generateFake, generateFake, getBArgument, getDescriptor, getIArgument, getInputArgument, getOutputArgument, getSArgument, getTArgument, getValue, iArgs, inputArguments, mappingsForFunction, numBArguments, numDArguments, numIArguments, numInputArguments, numOutputArguments, numSArguments, numTArguments, opHash, opNum, outputArguments, outputVariables, outputVariables, propertiesForFunction, removeIArgument, removeInputArgument, removeOutputArgument, removeSArgument, removeTArgument, sArgs, setInputArgument, setInputArguments, setOutputArgument, 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, getBooleanFromProperty, getDoubleValueFromProperty, getIntValueFromProperty, getLongValueFromProperty, getNumOutputs, getStringFromProperty, 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
-
-
-
-
Field Detail
-
addedEdges
protected boolean addedEdges
-
mMulTranspose
protected MMulTranspose mMulTranspose
-
-
Constructor Detail
-
TensorMmul
public TensorMmul(INDArray x, INDArray y, INDArray z, int[][] axes)
Initialize with the given input, pairwise transform, result, and number of elements- Parameters:
x
- the inputy
- the pairwise transformz
- the result
-
TensorMmul
public TensorMmul(INDArray x, INDArray y, int[] dimensionsX, int[] dimensionsY, boolean transposeX, boolean transposeY, boolean transposeZ)
-
TensorMmul
public TensorMmul(SameDiff sameDiff, SDVariable i_v1, SDVariable i_v2, int[][] dimensions)
-
TensorMmul
public TensorMmul(SameDiff sameDiff, SDVariable i_v1, SDVariable i_v2, int[][] dimensions, MMulTranspose mMulTranspose)
-
TensorMmul
public TensorMmul(SameDiff sameDiff, SDVariable x, SDVariable y, int[] dimensionsX, int[] dimensionsY, boolean transposeX, boolean transposeY, boolean transposeZ)
-
-
Method Detail
-
doDiff
public List<SDVariable> doDiff(List<SDVariable> gradients)
Description copied from class:DifferentialFunction
The actual implementation for automatic differentiation.- Overrides:
doDiff
in classDynamicCustomOp
- Returns:
-
opName
public String opName()
Description copied from class:DynamicCustomOp
This method returns op opName as string- Specified by:
opName
in interfaceCustomOp
- Overrides:
opName
in classDynamicCustomOp
- Returns:
-
initFromTensorFlow
public void initFromTensorFlow(NodeDef nodeDef, SameDiff initWith, Map<String,AttrValue> attributesForNode, GraphDef graph)
Description copied from class:DifferentialFunction
Initialize the function from the givenNodeDef
- Overrides:
initFromTensorFlow
in classDynamicCustomOp
-
initFromOnnx
public void initFromOnnx(Onnx.NodeProto node, SameDiff initWith, Map<String,Onnx.AttributeProto> attributesForNode, Onnx.GraphProto graph)
Description copied from class:DifferentialFunction
Iniitialize the function from the givenOnnx.NodeProto
- Overrides:
initFromOnnx
in classDynamicCustomOp
-
equals
public boolean equals(Object o)
- Overrides:
equals
in classDifferentialFunction
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classDifferentialFunction
-
configureFromArguments
public void configureFromArguments()
Description copied from interface:CustomOp
This allows a custom op to configure relevant fields from its arguments. This is needed when ops are created via reflection for things like model import.- Specified by:
configureFromArguments
in interfaceCustomOp
- Overrides:
configureFromArguments
in classDynamicCustomOp
-
setPropertiesForFunction
public void setPropertiesForFunction(Map<String,Object> properties)
- Overrides:
setPropertiesForFunction
in classDynamicCustomOp
-
opType
public Op.Type opType()
Description copied from class:DifferentialFunction
The type of the op- Overrides:
opType
in classDynamicCustomOp
- Returns:
-
onnxName
public String onnxName()
Description copied from class:DifferentialFunction
The opName of this function in onnx- Overrides:
onnxName
in classDynamicCustomOp
- Returns:
-
calculateOutputDataTypes
public List<DataType> calculateOutputDataTypes(List<DataType> inputDataTypes)
Description copied from class:DifferentialFunction
Calculate the data types for the output arrays. Though datatypes can also be inferred fromDifferentialFunction.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:
inputDataTypes
- The data types of the inputs- Returns:
- The data types of the outputs
-
-