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




NAME

       MPSGRUDescriptor


SYNOPSIS

       #import <MPSRNNLayer.h>

       Inherits MPSRNNDescriptor.

   Class Methods
       (nonnull instancetype) +
           createGRUDescriptorWithInputFeatureChannels:outputFeatureChannels:

   Properties
       id< MPSCNNConvolutionDataSource > inputGateInputWeights
       id< MPSCNNConvolutionDataSource > inputGateRecurrentWeights
       id< MPSCNNConvolutionDataSource > recurrentGateInputWeights
       id< MPSCNNConvolutionDataSource > recurrentGateRecurrentWeights
       id< MPSCNNConvolutionDataSource > outputGateInputWeights
       id< MPSCNNConvolutionDataSource > outputGateRecurrentWeights
       id< MPSCNNConvolutionDataSource > outputGateInputGateWeights
       float gatePnormValue
       BOOL flipOutputGates


Detailed Description

       This depends on Metal.framework  The MPSGRUDescriptor specifies a GRU
       (Gated Recurrent Unit) block/layer descriptor. The RNN layer
       initialized with a MPSGRUDescriptor transforms the input data (image or
       matrix), and previous output with a set of filters, each producing one
       feature map in the output data according to the Gated unit formulae
       detailed below. The user may provide the GRU unit a single input or a
       sequence of inputs. The layer also supports p-norm gating (Detailed in:
       https://arxiv.org/abs/1608.03639 ).

       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 h_i be the
       proposed new output. Let h1_i be the output data produced at this time
       step.

       Let Wz_ij, Uz_ij, be the input gate weights for input and recurrent
       input data respectively Let bi_i be the bias for the input gate

       Let Wr_ij, Ur_ij be the recurrent gate weights for input and recurrent
       input data respectively Let br_i be the bias for the recurrent gate

       Let Wh_ij, Uh_ij, Vh_ij, be the output gate weights for input,
       recurrent gate and input gate respectively Let bh_i be the bias for the
       output gate

       Let gz(x), gr(x), gh(x) be the neuron activation function for the
       input, recurrent and output gates Let p > 0 be a scalar variable
       (typicall p >= 1.0) that defines the p-norm gating norm value.

       Then the output of the Gated Recurrent Unit layer is computed as
       follows:

           z_i = gz(  Wz_ij * x_j  +  Uz_ij * h0_j  +  bz_i  )
           r_i = gr(  Wr_ij * x_j  +  Ur_ij * h0_j  +  br_i  )
           c_i =      Uh_ij * (r_j h0_j)  +  Vh_ij * (z_j h0_j)
           h_i = gh(  Wh_ij * x_j  + c_i + bh_i  )

       h1_i = ( 1 - z_i ^ p)^(1/p) h0_i + z_i h_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. The conventional GRU block is achieved by setting
       Vh = 0 (nil) and the so-called Minimal Gated Unit is achieved with Uh =
       0. (The Minimal Gated Unit is detailed in:
       https://arxiv.org/abs/1603.09420 and there they call z_i the value of
       the forget gate).


Method Documentation

   + (nonnull instancetype) createGRUDescriptorWithInputFeatureChannels:
       (NSUInteger) inputFeatureChannels(NSUInteger) outputFeatureChannels
       Creates a GRU 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 MPSGRUDescriptor object or nil, if failure.




Property Documentation

   - flipOutputGates [read],  [write],  [nonatomic],  [assign]
       If YES then the GRU-block output formula is changed to: h1_i = ( 1 -
       z_i ^ p)^(1/p) h_i + z_i h0_i. Defaults to NO.

   - gatePnormValue [read],  [write],  [nonatomic],  [assign]
       The p-norm gating norm value as specified by the GRU formulae. Defaults
       to 1.0f.

   - inputGateInputWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Wz_ij', bias 'bz_i' and neuron 'gz' from the GRU
       formula. If nil then assumed zero weights, bias and no neuron (identity
       mapping). Defaults to nil.

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

   - outputGateInputGateWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Vh_ij' - can be used to implement the 'Minimally
       Gated Unit'. If nil then assumed zero weights. Defaults to nil.

   - outputGateInputWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Wh_ij', bias 'bh_i' and neuron 'gh' from the GRU
       formula. If nil then assumed zero weights, bias and no neuron (identity
       mapping).Defaults to nil.

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

   - recurrentGateInputWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Wr_ij', bias 'br_i' and neuron 'gr' from the GRU
       formula. If nil then assumed zero weights, bias and no neuron (identity
       mapping).Defaults to nil.

   - recurrentGateRecurrentWeights [read],  [write],  [nonatomic],  [retain]
       Contains weights 'Ur_ij' from the GRU 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            MPSGRUDescriptor(3)


Mac OS X 10.12.6 - Generated Mon Oct 30 15:39:32 CDT 2017
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.