manpagez: man pages & more
man MPSLSTMDescriptor(3)
Home | html | info | man
MPSLSTMDescriptor(3)   MetalPerformanceShaders.framework  MPSLSTMDescriptor(3)




NAME

       MPSLSTMDescriptor


SYNOPSIS

       #import <MPSRNNLayer.h>

       Inherits MPSRNNDescriptor.

   Class Methods
       (nonnull instancetype) +
           createLSTMDescriptorWithInputFeatureChannels:outputFeatureChannels:

   Properties
       BOOL memoryWeightsAreDiagonal
       id< MPSCNNConvolutionDataSource > inputGateInputWeights
       id< MPSCNNConvolutionDataSource > inputGateRecurrentWeights
       id< MPSCNNConvolutionDataSource > inputGateMemoryWeights
       id< MPSCNNConvolutionDataSource > forgetGateInputWeights
       id< MPSCNNConvolutionDataSource > forgetGateRecurrentWeights
       id< MPSCNNConvolutionDataSource > forgetGateMemoryWeights
       id< MPSCNNConvolutionDataSource > outputGateInputWeights
       id< MPSCNNConvolutionDataSource > outputGateRecurrentWeights
       id< MPSCNNConvolutionDataSource > outputGateMemoryWeights
       id< MPSCNNConvolutionDataSource > cellGateInputWeights
       id< MPSCNNConvolutionDataSource > cellGateRecurrentWeights
       id< MPSCNNConvolutionDataSource > cellGateMemoryWeights
       MPSCNNNeuronType cellToOutputNeuronType
       float cellToOutputNeuronParamA
       float cellToOutputNeuronParamB


Detailed Description

       This depends on Metal.framework  The MPSLSTMDescriptor specifies a LSTM
       block/layer descriptor. The RNN layer initialized with a
       MPSLSTMDescriptor transforms the input data (image or matrix), the
       memory cell data and previous output with a set of filters, each
       producing one feature map in the output data and memory cell, according
       to the LSTM formulae detailed below. The user may provide the LSTM unit
       a single input or a sequence of inputs.

       Description of operation:



       Let x_j be the input data (at time index t of sequence, j index
       containing quadruplet: batch index, x,y and feature index (x=y=0 for
       matrices)). Let h0_j be the recurrent input (previous output) data from
       previous time step (at time index t-1 of sequence). Let h1_i be the
       output data produced at this time step. Let c0_j be the previous memory
       cell data (at time index t-1 of sequence). Let c1_i be the new memory
       cell data (at time index t-1 of sequence).

       Let Wi_ij, Ui_ij, Vi_ij, be the input gate weights for input, recurrent
       input and memory cell (peephole) data respectively Let bi_i be the bias
       for the input gate

       Let Wf_ij, Uf_ij, Vf_ij, be the forget gate weights for input,
       recurrent input and memory cell data respectively Let bf_i be the bias
       for the forget gate

       Let Wo_ij, Uo_ij, Vo_ij, be the output gate weights for input,
       recurrent input and memory cell data respectively Let bo_i be the bias
       for the output gate

       Let Wc_ij, Uc_ij, Vc_ij, be the memory cell gate weights for input,
       recurrent input and memory cell data respectively Let bc_i be the bias
       for the memory cell gate

       Let gi(x), gf(x), go(x), gc(x) be neuron activation function for the
       input, forget, output gate and memory cell gate Let gh(x) be the
       activation function applied to result memory cell data

       Then the new memory cell data c1_j and output image h1_i are computed
       as follows:

           I_i = gi(  Wi_ij * x_j  +  Ui_ij * h0_j  +  Vi_ij * c0_j  + bi_i  )
           F_i = gf(  Wf_ij * x_j  +  Uf_ij * h0_j  +  Vf_ij * c0_j  + bf_i  )
           C_i = gc(  Wc_ij * x_j  +  Uc_ij * h0_j  +  Vc_ij * c0_j  + bc_i  )

       c1_i = F_i c0_i  +  I_i C_i

           O_i = go(  Wo_ij * x_j  +  Uo_ij * h0_j  +  Vo_ij * c1_j  + bo_i  )

       h1_i = O_i gh( c1_i )



       The '*' stands for convolution (see MPSRNNImageInferenceLayer) or
       matrix-vector/matrix multiplication (see MPSRNNMatrixInferenceLayer).
       Summation is over index j (except for the batch index), but there is no
       summation over repeated index i - the output index. Note that for
       validity all intermediate images have to be of same size and all U and
       V matrices have to be square (ie. outputFeatureChannels ==
       inputFeatureChannels in those). Also the bias terms are scalars wrt.
       spatial dimensions.


Method Documentation

   + (nonnull instancetype) createLSTMDescriptorWithInputFeatureChannels:
       (NSUInteger) inputFeatureChannels(NSUInteger) outputFeatureChannels
       Creates a LSTM descriptor.

       Parameters:
           inputFeatureChannels The number of feature channels in the input
           image/matrix. Must be >= 1.
           outputFeatureChannels The number of feature channels in the output
           image/matrix. Must be >= 1.

       Returns:
           A valid MPSNNLSTMDescriptor object or nil, if failure.




Property Documentation

   - cellGateInputWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Wc_ij', bias 'bc_i' and neuron 'gc' from the LSTM
       formula. If nil then assumed zero weights, bias and no neuron (identity
       mapping). Defaults to nil.

   - cellGateMemoryWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Vc_ij' - the 'peephole' weights - from the LSTM
       formula. if YES == memoryWeightsAreDiagonal, then the number of weights
       used is the number of features in the memory cell image/matrix. If nil
       then assumed zero weights. Defaults to nil.

   - cellGateRecurrentWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Uc_ij' from the LSTM formula. If nil then assumed
       zero weights. Defaults to nil.

   - cellToOutputNeuronParamA [read],  [write],  [nonatomic],  [assign]
       Neuron parameter A for 'gh'. Defaults to 1.0f.

   - cellToOutputNeuronParamB [read],  [write],  [nonatomic],  [assign]
       Neuron parameter B for 'gh'. Defaults to 1.0f.

   - cellToOutputNeuronType [read],  [write],  [nonatomic],  [assign]
       Neuron type definition for 'gh', see MPSCNNNeuronType. Defaults to
       MPSCNNNeuronTypeTanH.

   - forgetGateInputWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Wf_ij', bias 'bf_i' and neuron 'gf' from the LSTM
       formula. If nil then assumed zero weights, bias and no neuron (identity
       mapping).Defaults to nil.

   - forgetGateMemoryWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Vf_ij' - the 'peephole' weights - from the LSTM
       formula. if YES == memoryWeightsAreDiagonal, then the number of weights
       used is the number of features in the memory cell image/matrix. If nil
       then assumed zero weights. Defaults to nil.

   - forgetGateRecurrentWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Uf_ij' from the LSTM formula. If nil then assumed
       zero weights. Defaults to nil.

   - inputGateInputWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Wi_ij', bias 'bi_i' and neuron 'gi' from the LSTM
       formula. If nil then assumed zero weights, bias and no neuron (identity
       mapping). Defaults to nil.

   - inputGateMemoryWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Vi_ij' - the 'peephole' weights - from the LSTM
       formula. if YES == memoryWeightsAreDiagonal, then the number of weights
       used is the number of features in the memory cell image/matrix. If nil
       then assumed zero weights. Defaults to nil.

   - inputGateRecurrentWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Ui_ij' from the LSTM formula. If nil then assumed
       zero weights. Defaults to nil.

   - memoryWeightsAreDiagonal [read],  [write],  [nonatomic],  [assign]
       If YES, then the 'peephole' weight matrices will be diagonal matrices
       represented as vectors of length the number of features in memory
       cells, that will be multiplied pointwise with the peephole matrix or
       image in order to achieve the diagonal (nonmixing) update. Defaults to
       NO.

   - outputGateInputWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Wo_ij', bias 'bo_i' and neuron 'go' from the LSTM
       formula. If nil then assumed zero weights, bias and no neuron (identity
       mapping). Defaults to nil.

   - outputGateMemoryWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Vo_ij' - the 'peephole' weights - from the LSTM. if
       YES == memoryWeightsAreDiagonal, then the number of weights used is the
       number of features in the memory cell image/matrix. If nil then assumed
       zero weights. Defaults to nil.

   - outputGateRecurrentWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Uo_ij' from the LSTM formula. If nil then assumed
       zero weights. Defaults to nil.



Author

       Generated automatically by Doxygen for
       MetalPerformanceShaders.framework from the source code.





Version MetalPerformanceShaders-Thu2Jul 13 2017           MPSLSTMDescriptor(3)


Mac OS X 10.12.6 - Generated Mon Oct 30 18:44:49 CDT 2017
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.