.TH "MPSCNNNeuron" 3 "Mon Jul 9 2018" "Version MetalPerformanceShaders-119.3" "MetalPerformanceShaders.framework" \" -*- nroff -*- .ad l .nh .SH NAME MPSCNNNeuron .SH SYNOPSIS .br .PP .PP \fC#import \fP .PP Inherits \fBMPSCNNKernel\fP\&. .PP Inherited by \fBMPSCNNNeuronAbsolute\fP, \fBMPSCNNNeuronELU\fP, \fBMPSCNNNeuronExponential\fP, \fBMPSCNNNeuronHardSigmoid\fP, \fBMPSCNNNeuronLinear\fP, \fBMPSCNNNeuronLogarithm\fP, \fBMPSCNNNeuronPower\fP, \fBMPSCNNNeuronPReLU\fP, \fBMPSCNNNeuronReLU\fP, \fBMPSCNNNeuronReLUN\fP, \fBMPSCNNNeuronSigmoid\fP, \fBMPSCNNNeuronSoftPlus\fP, \fBMPSCNNNeuronSoftSign\fP, and \fBMPSCNNNeuronTanH\fP\&. .SS "Instance Methods" .in +1c .ti -1c .RI "(nonnull instancetype) \- \fBinitWithDevice:\fP" .br .ti -1c .RI "(nonnull instancetype) \- \fBinitWithDevice:neuronDescriptor:\fP" .br .ti -1c .RI "(nullable instancetype) \- \fBinitWithCoder:device:\fP" .br .in -1c .SS "Properties" .in +1c .ti -1c .RI "\fBMPSCNNNeuronType\fP \fBneuronType\fP" .br .ti -1c .RI "\fBMPSCNNNeuronType\fP float \fBa\fP" .br .ti -1c .RI "float \fBb\fP" .br .ti -1c .RI "float \fBc\fP" .br .ti -1c .RI "NSData * \fBdata\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP This depends on Metal\&.framework This filter applies a neuron activation function\&. You must use one of the sub-classes of \fBMPSCNNNeuron\fP\&. .PP The following filter types are supported: MPSCNNNeuronTypeNone ///< f(x) = x MPSCNNNeuronTypeLinear ///< f(x) = a * x + b MPSCNNNeuronTypeReLU ///< f(x) = x >= 0 ? x : a * x MPSCNNNeuronTypeSigmoid ///< f(x) = 1 / (1 + e^-x) MPSCNNNeuronTypeHardSigmoid ///< f(x) = clamp((x * a) + b, 0, 1) MPSCNNNeuronTypeTanH ///< f(x) = a * tanh(b * x) MPSCNNNeuronTypeAbsolute ///< f(x) = fabs(x) MPSCNNNeuronTypeSoftPlus ///< f(x) = a * log(1 + e^(b * x)) MPSCNNNeuronTypeSoftSign ///< f(x) = x / (1 + abs(x)) MPSCNNNeuronTypeELU ///< f(x) = x >= 0 ? x : a * (exp(x) - 1) MPSCNNNeuronTypePReLU ///< Same as ReLU except parameter a is per channel MPSCNNNeuronTypeReLUN ///< f(x) = min((x >= 0 ? x : a * x), b) MPSCNNNeuronTypePower ///< f(x) = (a * x + b) ^ c MPSCNNNeuronTypeExponential ///< f(x) = c ^ (a * x + b) MPSCNNNeuronTypeLogarithm ///< f(x) = log_c(a * x + b) .SH "Method Documentation" .PP .SS "\- (nullable instancetype) \fBinitWithCoder:\fP (NSCoder *__nonnull) aDecoder(nonnull id< MTLDevice >) device" \fBNSSecureCoding\fP compatability While the standard NSSecureCoding/NSCoding method -initWithCoder: should work, since the file can't know which device your data is allocated on, we have to guess and may guess incorrectly\&. To avoid that problem, use initWithCoder:device instead\&. .PP \fBParameters:\fP .RS 4 \fIaDecoder\fP The NSCoder subclass with your serialized \fBMPSKernel\fP .br \fIdevice\fP The MTLDevice on which to make the \fBMPSKernel\fP .RE .PP \fBReturns:\fP .RS 4 \fBA\fP new \fBMPSKernel\fP object, or nil if failure\&. .RE .PP .PP Reimplemented from \fBMPSCNNKernel\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 \fBA\fP 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 \fBMPSCNNKernel\fP\&. .PP Reimplemented in \fBMPSCNNNeuronLinear\fP, \fBMPSCNNNeuronReLU\fP, \fBMPSCNNNeuronPReLU\fP, \fBMPSCNNNeuronSigmoid\fP, \fBMPSCNNNeuronHardSigmoid\fP, \fBMPSCNNNeuronTanH\fP, \fBMPSCNNNeuronAbsolute\fP, \fBMPSCNNNeuronSoftPlus\fP, \fBMPSCNNNeuronSoftSign\fP, \fBMPSCNNNeuronELU\fP, \fBMPSCNNNeuronReLUN\fP, \fBMPSCNNNeuronPower\fP, \fBMPSCNNNeuronExponential\fP, and \fBMPSCNNNeuronLogarithm\fP\&. .SS "\- (nonnull instancetype) \fBinitWithDevice:\fP (nonnull id< MTLDevice >) device(\fBMPSNNNeuronDescriptor\fP *_Nonnull) neuronDescriptor" Initialize the neuron filter with a neuron descriptor\&. .PP \fBParameters:\fP .RS 4 \fIdevice\fP The device the filter will run on\&. .br \fIneuronDescriptor\fP The neuron descriptor\&. For the neuron of type MPSCNNNeuronTypePReLU, the neuron descriptor references an NSData object containing a float array with the per feature channel value of PReLu parameter and, in this case, the \fBMPSCNNNeuron\fP retains the NSData object\&. .RE .PP \fBReturns:\fP .RS 4 \fBA\fP valid \fBMPSCNNNeuron\fP object or nil, if failure\&. .RE .PP .SH "Property Documentation" .PP .SS "\- (\fBMPSCNNNeuronType\fP float) a\fC [read]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" .SS "\- (float) b\fC [read]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" .SS "\- (float) c\fC [read]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" .SS "\- (NSData*) data\fC [read]\fP, \fC [nonatomic]\fP, \fC [retain]\fP" .SS "\- (\fBMPSCNNNeuronType\fP) neuronType\fC [read]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" .SH "Author" .PP Generated automatically by Doxygen for MetalPerformanceShaders\&.framework from the source code\&.