.TH "MPSMatrixNeuronGradient" 3 "Mon Jul 9 2018" "Version MetalPerformanceShaders-119.3" "MetalPerformanceShaders.framework" \" -*- nroff -*- .ad l .nh .SH NAME MPSMatrixNeuronGradient .SH SYNOPSIS .br .PP .PP \fC#import \fP .PP Inherits \fBMPSMatrixBinaryKernel\fP\&. .SS "Instance Methods" .in +1c .ti -1c .RI "(void) \- \fBsetNeuronType:parameterA:parameterB:parameterC:\fP" .br .ti -1c .RI "(\fBMPSCNNNeuronType\fP) \- \fBneuronType\fP" .br .ti -1c .RI "(float) \- \fBneuronParameterA\fP" .br .ti -1c .RI "(float) \- \fBneuronParameterB\fP" .br .ti -1c .RI "(float) \- \fBneuronParameterC\fP" .br .ti -1c .RI "(void) \- \fBsetNeuronToPReLUWithParametersA:\fP" .br .ti -1c .RI "(nonnull instancetype) \- \fBinitWithDevice:\fP" .br .ti -1c .RI "(void) \- \fBencodeToCommandBuffer:gradientMatrix:inputMatrix:biasVector:resultGradientForDataMatrix:resultGradientForBiasVector:\fP" .br .ti -1c .RI "(nullable instancetype) \- \fBinitWithCoder:device:\fP" .br .ti -1c .RI "(nonnull instancetype) \- \fBcopyWithZone:device:\fP" .br .in -1c .SS "Properties" .in +1c .ti -1c .RI "NSUInteger \fBsourceNumberOfFeatureVectors\fP" .br .ti -1c .RI "NSUInteger \fBsourceInputFeatureChannels\fP" .br .ti -1c .RI "double \fBalpha\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP This depends on Metal\&.framework\&. .PP \fBA\fP neuron gradient activation kernel that operates on matrices\&. .PP \fBA\fP \fBMPSMatrixNeuronGradient\fP object computes the results of backpropagating the gradients of a loss function with respect to the outputs of an \fBMPSMatrixNeuron\fP object\&. The corresponding properties and data used by the \fBMPSMatrixNeuronGradient\fP object should correspond to those used by the forward \fBMPSMatrixNeuron\fP object for which the gradient is being computed\&. .SH "Method Documentation" .PP .SS "\- (nonnull instancetype) copyWithZone: (nullable NSZone *) zone(nullable id< MTLDevice >) device" Make a copy of this kernel for a new device - .PP \fBSee also:\fP .RS 4 \fBMPSKernel\fP .RE .PP \fBParameters:\fP .RS 4 \fIzone\fP The NSZone in which to allocate the object .br \fIdevice\fP The device for the new \fBMPSKernel\fP\&. If nil, then use self\&.device\&. .RE .PP \fBReturns:\fP .RS 4 \fBA\fP pointer to a copy of this \fBMPSKernel\fP\&. This will fail, returning nil if the device is not supported\&. Devices must be MTLFeatureSet_iOS_GPUFamily2_v1 or later\&. .RE .PP .PP Reimplemented from \fBMPSKernel\fP\&. .SS "\- (void) encodeToCommandBuffer: (nonnull id< MTLCommandBuffer >) commandBuffer(\fBMPSMatrix\fP *__nonnull) gradientMatrix(\fBMPSMatrix\fP *__nonnull) inputMatrix(\fBMPSVector\fP *__nullable) biasVector(\fBMPSMatrix\fP *__nonnull) resultGradientForDataMatrix(\fBMPSVector\fP *__nullable) resultGradientForBiasVector" Encode a \fBMPSMatrixNeuronGradient\fP object to a command buffer and compute its gradient with respect to its input data\&. .PP \fBParameters:\fP .RS 4 \fIcommandBuffer\fP The commandBuffer on which to encode the operation\&. .br \fIgradientMatrix\fP \fBA\fP matrix whose values represent the gradient of a loss function with respect to the results of a forward \fBMPSMatrixNeuron\fP operation\&. .br \fIinputMatrix\fP \fBA\fP matrix containing the inputs to a forward \fBMPSMatrixNeuron\fP operation for which the gradient values are to be computed\&. .br \fIbiasVector\fP \fBA\fP vector containing the bias terms\&. .br \fIresultGradientForDataMatrix\fP The matrix containing the resulting gradient values\&. .br \fIresultGradientForBiasVector\fP If non-NULL the vector containing gradients for the bias terms\&. .RE .PP .SS "\- (nullable instancetype) \fBinitWithCoder:\fP (NSCoder *__nonnull) aDecoder(nonnull id< MTLDevice >) device" \fBNSSecureCoding\fP compatability See \fBMPSKernel::initWithCoder\fP\&. .PP \fBParameters:\fP .RS 4 \fIaDecoder\fP The NSCoder subclass with your serialized \fBMPSMatrixNeuronGradient\fP .br \fIdevice\fP The MTLDevice on which to make the \fBMPSMatrixNeuronGradient\fP object\&. .RE .PP \fBReturns:\fP .RS 4 \fBA\fP new \fBMPSMatrixNeuronGradient\fP object, or nil if failure\&. .RE .PP .PP Reimplemented from \fBMPSKernel\fP\&. .SS "\- (nonnull instancetype) initWithDevice: (nonnull id< MTLDevice >) device" Standard init with default properties per filter type .PP \fBParameters:\fP .RS 4 \fIdevice\fP The device that the filter will be used on\&. May not be NULL\&. .RE .PP \fBReturns:\fP .RS 4 a pointer to the newly initialized object\&. This will fail, returning nil if the device is not supported\&. Devices must be MTLFeatureSet_iOS_GPUFamily2_v1 or later\&. .RE .PP .PP Reimplemented from \fBMPSKernel\fP\&. .SS "\- (float) neuronParameterA " Getter funtion for neuronType set using setNeuronType:parameterA:parameterB:parameterC method .SS "\- (float) neuronParameterB " Getter funtion for neuronType set using setNeuronType:parameterA:parameterB:parameterC method .SS "\- (float) neuronParameterC " Getter funtion for neuronType set using setNeuronType:parameterA:parameterB:parameterC method .SS "\- (\fBMPSCNNNeuronType\fP) neuronType " Getter funtion for neuronType set using setNeuronType:parameterA:parameterB:parameterC method .SS "\- (void) setNeuronToPReLUWithParametersA: (NSData *__nonnull) A" Add per output value neuron parameters \fBA\fP for PReLu neuron activation functions\&. .PP This method sets the neuron to PReLU, zeros parameters \fBA\fP and B and sets the per output value neuron parameters \fBA\fP to an array containing a unique value of \fBA\fP for each output value\&. .PP If the neuron function is f(v,a,b), it will apply .PP .nf resultMatrix(i, j) = f( input(i, j), A[j], B[j] ) where j in [0, sourceInputFeatureChannels] .fi .PP .PP See https://arxiv.org/pdf/1502.01852.pdf for details\&. .PP All other neuron types, where parameter \fBA\fP and parameter B are shared across output values must be set using -setNeuronType:parameterA:parameterB: .PP \fBParameters:\fP .RS 4 \fI\fBA\fP\fP An array containing float values for neuron parameter \fBA\fP\&. Number of entries must be equal to MIN(inputMatrix\&.columns - sourceMatrixOrigin\&.y, sourceInputFeatureChannels) .RE .PP .SS "\- (void) setNeuronType: (\fBMPSCNNNeuronType\fP) neuronType(float) parameterA(float) parameterB(float) parameterC" Specifies a neuron activation function to be used\&. .PP This method can be used to add a neuron activation funtion of given type with associated scalar parameters \fBA\fP, B, and C that are shared across all output values\&. Note that this method can only be used to specify neurons which are specified by three (or fewer) parameters shared across all output values (or channels, in CNN nomenclature)\&. It is an error to call this method for neuron activation functions like MPSCNNNeuronTypePReLU, which require per-channel parameter values\&. For those kind of neuron activation functions, use appropriate setter functions\&. An \fBMPSMatrixNeuron\fP kernel is initialized with a default neuron function of MPSCNNNeuronTypeNone\&. .PP \fBParameters:\fP .RS 4 \fIneuronType\fP Type of neuron activation function\&. For full list see \fBMPSCNNNeuronType\&.h\fP .br \fIparameterA\fP parameterA of neuron activation that is shared across all output values\&. .br \fIparameterB\fP parameterB of neuron activation that is shared across all output values\&. .br \fIparameterC\fP parameterC of neuron activation that is shared across all output values\&. .RE .PP .SH "Property Documentation" .PP .SS "\- alpha\fC [read]\fP, \fC [write]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" The scale factor to apply to the input\&. .SS "\- sourceInputFeatureChannels\fC [read]\fP, \fC [write]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" The number of feature channels in the input vectors\&. .SS "\- sourceNumberOfFeatureVectors\fC [read]\fP, \fC [write]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" The number of input vectors which make up the input array\&. .SH "Author" .PP Generated automatically by Doxygen for MetalPerformanceShaders\&.framework from the source code\&.