Class Mmul
- java.lang.Object
-
- org.nd4j.autodiff.functions.DifferentialFunction
-
- org.nd4j.linalg.api.ops.DynamicCustomOp
-
- org.nd4j.linalg.api.ops.impl.reduce.Mmul
-
- All Implemented Interfaces:
CustomOp
public class Mmul extends DynamicCustomOp
-
-
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 doublealphaprotected doublebetaprotected MMulTransposemt-
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 Mmul()Mmul(SameDiff sameDiff, SDVariable i_v1, SDVariable i_v2)Mmul(SameDiff sameDiff, SDVariable x, SDVariable y, boolean transposeX, boolean transposeY, boolean transposeZ)Mmul(SameDiff sameDiff, SDVariable i_v1, SDVariable i_v2, MMulTranspose mt)Mmul(INDArray x, INDArray y)Mmul(INDArray x, INDArray y, boolean transposeX, boolean transposeY, boolean transposeZ)Mmul(INDArray x, INDArray y, double alpha, double beta)Mmul(INDArray x, INDArray y, double alpha, double beta, boolean transposeX, boolean transposeY, boolean transposeZ)Mmul(INDArray x, INDArray y, INDArray z, double alpha, double beta, MMulTranspose mt)Mmul(INDArray x, INDArray y, INDArray z, MMulTranspose mt)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<DataType>calculateOutputDataTypes(List<DataType> dataTypes)Calculate the data types for the output arrays.StringconfigFieldName()Returns the name of the field to be used for looking up field names.voidconfigureFromArguments()This allows a custom op to configure relevant fields from its arguments.List<SDVariable>doDiff(List<SDVariable> gradients)The actual implementation for automatic differentiation.ObjectgetValue(Field property)Get the value for a given property for this functionvoidinitFromOnnx(Onnx.NodeProto node, SameDiff initWith, Map<String,Onnx.AttributeProto> attributesForNode, Onnx.GraphProto graph)Iniitialize the function from the givenOnnx.NodeProtovoidinitFromTensorFlow(NodeDef nodeDef, SameDiff initWith, Map<String,AttrValue> attributesForNode, GraphDef graph)Initialize the function from the givenNodeDefbooleanisConfigProperties()Returns true if the fields for this class should be looked up from a configuration class.Map<String,Map<String,PropertyMapping>>mappingsForFunction()Returns the mappings for a given function ( for tensorflow and onnx import mapping properties of this function).StringonnxName()The opName of this function in onnxStringopName()This method returns op opName as stringMap<String,Object>propertiesForFunction()Returns the properties for a given functionvoidsetPropertiesForFunction(Map<String,Object> properties)String[]tensorflowNames()The opName of this function tensorflowlong[]transposeShapeArray(long[] shape)For a 2D matrix of shape (M, N) we return (N, M).-
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, iArgs, inputArguments, numBArguments, numDArguments, numIArguments, numInputArguments, numOutputArguments, numSArguments, numTArguments, opHash, opNum, opType, outputArguments, outputVariables, outputVariables, 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, configureWithSameDiff, diff, dup, equals, getBooleanFromProperty, getDoubleValueFromProperty, getIntValueFromProperty, getLongValueFromProperty, getNumOutputs, getStringFromProperty, hashCode, larg, onnxNames, outputs, outputVariable, outputVariablesNames, rarg, replaceArg, setInstanceId
-
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
-
mt
protected MMulTranspose mt
-
alpha
protected double alpha
-
beta
protected double beta
-
-
Constructor Detail
-
Mmul
public Mmul(SameDiff sameDiff, SDVariable i_v1, SDVariable i_v2, MMulTranspose mt)
- Parameters:
sameDiff-i_v1-i_v2-mt-
-
Mmul
public Mmul(SameDiff sameDiff, SDVariable i_v1, SDVariable i_v2)
- Parameters:
sameDiff-i_v1-i_v2-
-
Mmul
public Mmul(INDArray x, INDArray y, INDArray z, double alpha, double beta, MMulTranspose mt)
-
Mmul
public Mmul(INDArray x, INDArray y, INDArray z, MMulTranspose mt)
- Parameters:
x-y-z-
-
Mmul
public Mmul(INDArray x, INDArray y, boolean transposeX, boolean transposeY, boolean transposeZ)
-
Mmul
public Mmul(INDArray x, INDArray y, double alpha, double beta, boolean transposeX, boolean transposeY, boolean transposeZ)
-
Mmul
public Mmul(SameDiff sameDiff, SDVariable x, SDVariable y, boolean transposeX, boolean transposeY, boolean transposeZ)
-
Mmul
public Mmul()
-
-
Method Detail
-
getValue
public Object getValue(Field property)
Description copied from class:DifferentialFunctionGet the value for a given property for this function- Overrides:
getValuein classDynamicCustomOp- Parameters:
property- the property to get- Returns:
- the value for the function if it exists
-
propertiesForFunction
public Map<String,Object> propertiesForFunction()
Description copied from class:DifferentialFunctionReturns the properties for a given function- Overrides:
propertiesForFunctionin classDynamicCustomOp- Returns:
-
configureFromArguments
public void configureFromArguments()
Description copied from interface:CustomOpThis 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:
configureFromArgumentsin interfaceCustomOp- Overrides:
configureFromArgumentsin classDynamicCustomOp
-
isConfigProperties
public boolean isConfigProperties()
Description copied from class:DifferentialFunctionReturns true if the fields for this class should be looked up from a configuration class.- Overrides:
isConfigPropertiesin classDifferentialFunction- Returns:
-
configFieldName
public String configFieldName()
Description copied from class:DifferentialFunctionReturns the name of the field to be used for looking up field names. This should be used in conjunction withDifferentialFunction.isConfigProperties()to facilitate mapping fields for model import.- Overrides:
configFieldNamein classDifferentialFunction- Returns:
-
setPropertiesForFunction
public void setPropertiesForFunction(Map<String,Object> properties)
- Overrides:
setPropertiesForFunctionin classDynamicCustomOp
-
transposeShapeArray
public long[] transposeShapeArray(long[] shape)
For a 2D matrix of shape (M, N) we return (N, M). For a 3D matrix with leading mini-batch dimension (mb, M, N) we return (mb, N, M)- Parameters:
shape- input shape array- Returns:
-
onnxName
public String onnxName()
Description copied from class:DifferentialFunctionThe opName of this function in onnx- Overrides:
onnxNamein classDynamicCustomOp- Returns:
-
tensorflowNames
public String[] tensorflowNames()
Description copied from class:DifferentialFunctionThe opName of this function tensorflow- Overrides:
tensorflowNamesin classDifferentialFunction- Returns:
-
opName
public String opName()
Description copied from class:DynamicCustomOpThis method returns op opName as string- Specified by:
opNamein interfaceCustomOp- Overrides:
opNamein classDynamicCustomOp- Returns:
-
initFromTensorFlow
public void initFromTensorFlow(NodeDef nodeDef, SameDiff initWith, Map<String,AttrValue> attributesForNode, GraphDef graph)
Description copied from class:DifferentialFunctionInitialize the function from the givenNodeDef- Overrides:
initFromTensorFlowin classDynamicCustomOp
-
initFromOnnx
public void initFromOnnx(Onnx.NodeProto node, SameDiff initWith, Map<String,Onnx.AttributeProto> attributesForNode, Onnx.GraphProto graph)
Description copied from class:DifferentialFunctionIniitialize the function from the givenOnnx.NodeProto- Overrides:
initFromOnnxin classDynamicCustomOp
-
doDiff
public List<SDVariable> doDiff(List<SDVariable> gradients)
Description copied from class:DifferentialFunctionThe actual implementation for automatic differentiation.- Overrides:
doDiffin classDynamicCustomOp- Returns:
-
mappingsForFunction
public Map<String,Map<String,PropertyMapping>> mappingsForFunction()
Description copied from class:DifferentialFunctionReturns the mappings for a given function ( for tensorflow and onnx import mapping properties of this function). The mapping is indexed by field name. If the function has no properties, this returned map will be empty. Note that some functions have multiple names. This function returns a map indexed by each alias it has for a given name. These names include both onnx and tensorflow names (which might be 1 or more)- Overrides:
mappingsForFunctionin classDynamicCustomOp- Returns:
-
calculateOutputDataTypes
public List<DataType> calculateOutputDataTypes(List<DataType> dataTypes)
Description copied from class:DifferentialFunctionCalculate 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:
calculateOutputDataTypesin classDifferentialFunction- Parameters:
dataTypes- The data types of the inputs- Returns:
- The data types of the outputs
-
-