public class LSTMLayer extends DynamicCustomOp
See also LSTMBlockCell - lstmBlockCell op is used internally at C++ level for computation.
Input arrays:
0: max sequence length; long/int64 scalar
1: input [seqLength, bS, inSize] at time t
2: previous/initial cell state [bS, numUnits]
3: previous/initial output [bS, numUnits]
4: Weights - concatenated (input-to-hidden, hidden-to-hidden weights) weights, [(inSize+numUnits), 4*numUnits]
5: weights - cell peephole (t-1) connections to input modulation gate, [numUnits]
6: weights - cell peephole (t-1) connections to forget gate, [numUnits]
7: weights - cell peephole (t) connections to output gate, [numUnits]
8: biases, shape [4*numUnits]
Input integer arguments: set via LSTMConfiguration
0: if not zero, provide peephole connections
1: Data format - 0=TNS=[seqLen,mb,size]; 1=NST=[mb,size,seqLen]; 2=NTS=[mb,seqLen,size]
Input float arguments: set via LSTMConfiguration
0: the bias added to forget gates in order to reduce the scale of forgetting in the beginning of the training
1: clipping value for cell state, if it is not equal to zero, then cell state is clipped
Output arrays:
0: i - Input modulation gate activations, rank 3, shape as per dataFormat
1: c (cs) - Cell state (pre tanh), rank 3, shape as per dataFormat
2: f - Output - forget gate activations, rank 3, shape as per dataFormat
3: o - Output - output gate activations, rank 3, shape as per dataFormat
4: z (ci) - Output - block input, rank 3, shape as per dataFormat
5: h (co) - Cell state, post tanh, rank 3, shape as per dataFormat
6: y (h) - Current cell output, rank 3, shape as per dataFormat
DynamicCustomOp.DynamicCustomOpsBuilderaxis, bArguments, iArguments, inplaceCall, inputArguments, outputArguments, outputVariables, tArgumentsdimensions, extraArgs, inPlace, sameDiff, scalarValue| Constructor and Description |
|---|
LSTMLayer() |
LSTMLayer(SameDiff sameDiff,
SDVariable maxTSLength,
SDVariable x,
SDVariable cLast,
SDVariable yLast,
LSTMWeights weights,
LSTMConfiguration configuration) |
| Modifier and Type | Method and Description |
|---|---|
List<DataType> |
calculateOutputDataTypes(List<DataType> inputDataTypes)
Calculate the data types for the output arrays.
|
List<SDVariable> |
doDiff(List<SDVariable> grads)
The actual implementation for automatic differentiation.
|
void |
initFromTensorFlow(NodeDef nodeDef,
SameDiff initWith,
Map<String,AttrValue> attributesForNode,
GraphDef graph)
Initialize the function from the given
NodeDef |
String |
opName()
This method returns op opName as string
|
Map<String,Object> |
propertiesForFunction()
Returns the properties for a given function
|
String |
tensorflowName()
The opName of this function tensorflow
|
addBArgument, addIArgument, addIArgument, addInputArgument, addOutputArgument, addTArgument, assertValidForExecution, bArgs, builder, calculateOutputShape, getBArgument, getDescriptor, getIArgument, getInputArgument, getOutputArgument, getTArgument, iArgs, initFromOnnx, inputArguments, numBArguments, numIArguments, numInputArguments, numOutputArguments, numTArguments, onnxName, opHash, opNum, opType, outputArguments, outputVariables, outputVariables, removeIArgument, removeInputArgument, removeOutputArgument, removeTArgument, setInputArgument, setInputArguments, setOutputArgument, tArgs, toString, wrapFilterNull, wrapOrNullarg, arg, argNames, args, attributeAdaptersForFunction, configFieldName, diff, dup, equals, f, getNumOutputs, getValue, hashCode, isConfigProperties, larg, mappingsForFunction, onnxNames, outputVariable, outputVariablesNames, rarg, replaceArg, resolvePropertiesFromSameDiffBeforeExecution, setInstanceId, setPropertiesForFunction, setValueFor, tensorflowNamesclone, finalize, getClass, notify, notifyAll, wait, wait, waitisInplaceCallpublic LSTMLayer()
public LSTMLayer(@NonNull
SameDiff sameDiff,
SDVariable maxTSLength,
SDVariable x,
SDVariable cLast,
SDVariable yLast,
LSTMWeights weights,
LSTMConfiguration configuration)
public List<DataType> calculateOutputDataTypes(List<DataType> inputDataTypes)
DifferentialFunctionDifferentialFunction.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.calculateOutputDataTypes in class DifferentialFunctioninputDataTypes - The data types of the inputspublic List<SDVariable> doDiff(List<SDVariable> grads)
DifferentialFunctiondoDiff in class DynamicCustomOppublic void initFromTensorFlow(NodeDef nodeDef, SameDiff initWith, Map<String,AttrValue> attributesForNode, GraphDef graph)
DifferentialFunctionNodeDefinitFromTensorFlow in class DynamicCustomOppublic String opName()
DynamicCustomOpopName in interface CustomOpopName in class DynamicCustomOppublic Map<String,Object> propertiesForFunction()
DifferentialFunctionpropertiesForFunction in class DifferentialFunctionpublic String tensorflowName()
DifferentialFunctiontensorflowName in class DynamicCustomOpCopyright © 2019. All rights reserved.