MPSNNNeuronDescriptor(3)				 MetalPerformanceShaders.framework				  MPSNNNeuronDescriptor(3)

NAME
MPSNNNeuronDescriptor SYNOPSIS
#import <MPSCNNNeuron.h> Inherits NSObject, and <NSCopying>. Instance Methods (nonnull instancetype) - init Class Methods (nonnull MPSNNNeuronDescriptor *) + cnnNeuronDescriptorWithType: (nonnull MPSNNNeuronDescriptor *) + cnnNeuronDescriptorWithType:a: (nonnull MPSNNNeuronDescriptor *) + cnnNeuronDescriptorWithType:a:b: (nonnull MPSNNNeuronDescriptor *) + cnnNeuronDescriptorWithType:a:b:c: (nonnull MPSNNNeuronDescriptor *) + cnnNeuronPReLUDescriptorWithData:noCopy: Properties MPSCNNNeuronType neuronType float a float b float c NSData * data Detailed Description This depends on Metal.framework The MPSNNNeuronDescriptor specifies a neuron descriptor. Supported neuron types: Neuron type 'none': f(x) = x Parameters: none ReLU neuron filter: f(x) = x >= 0 ? x : a * x This is called Leaky ReLU in literature. Some literature defines classical ReLU as max(0, x). If you want this behavior, simply pass a = 0. Parameters: a For default behavior, set the value of a to 0.0f. Linear neuron filter: f(x) = a * x + b Parameters: a, b For default behavior, set the value of a to 1.0f and the value of b to 0.0f. Sigmoid neuron filter: f(x) = 1 / (1 + e^-x) Parameters: none Hard Sigmoid filter: f(x) = clamp((x * a) + b, 0, 1) Parameters: a, b For default behavior, set the value of a to 0.2f and the value of b to 0.5f. Hyperbolic tangent (TanH) neuron filter: f(x) = a * tanh(b * x) Parameters: a, b For default behavior, set the value of a to 1.0f and the value of b to 1.0f. Absolute neuron filter: f(x) = fabs(x) Parameters: none Parametric Soft Plus neuron filter: f(x) = a * log(1 + e^(b * x)) Parameters: a, b For default behavior, set the value of a to 1.0f and the value of b to 1.0f. Parametric Soft Sign neuron filter: f(x) = x / (1 + abs(x)) Parameters: none Parametric ELU neuron filter: f(x) = x >= 0 ? x : a * (exp(x) - 1) Parameters: a For default behavior, set the value of a to 1.0f. Parametric ReLU (PReLU) neuron filter: Same as ReLU, except parameter aArray is per channel. For each pixel, applies the following function: f(x_i) = x_i, if x_i >= 0 = a_i * x_i if x_i < 0 i in [0...channels-1] i.e. parameters a_i are learned and applied to each channel separately. Compare this to ReLu where parameter a is shared across all channels. See https://arxiv.org/pdf/1502.01852.pdf for details. Parameters: aArray - Array of floats containing per channel value of PReLu parameter count - Number of float values in array aArray. ReLUN neuron filter: f(x) = min((x >= 0 ? x : a * x), b) Parameters: a, b As an example, the TensorFlow Relu6 activation layer can be implemented by setting the parameter b to 6.0f: https://www.tensorflow.org/api_docs/cc/class/tensorflow/ops/relu6. For default behavior, set the value of a to 1.0f and the value of b to 6.0f. Method Documentation + (nonnull MPSNNNeuronDescriptor*) cnnNeuronDescriptorWithType: (MPSCNNNeuronType) neuronType Make a descriptor for a MPSCNNNeuron object. Parameters: neuronType The type of a neuron filter. Returns: A valid MPSNNNeuronDescriptor object or nil, if failure. + (nonnull MPSNNNeuronDescriptor*) cnnNeuronDescriptorWithType: (MPSCNNNeuronType) neuronType(float) a Make a descriptor for a MPSCNNNeuron object. Parameters: neuronType The type of a neuron filter. a Parameter 'a'. Returns: A valid MPSNNNeuronDescriptor object or nil, if failure. + (nonnull MPSNNNeuronDescriptor*) cnnNeuronDescriptorWithType: (MPSCNNNeuronType) neuronType(float) a(float) b Initialize the neuron descriptor. Parameters: neuronType The type of a neuron filter. a Parameter 'a'. b Parameter 'b'. Returns: A valid MPSNNNeuronDescriptor object or nil, if failure. + (nonnull MPSNNNeuronDescriptor*) cnnNeuronDescriptorWithType: (MPSCNNNeuronType) neuronType(float) a(float) b(float) c Make a descriptor for a MPSCNNNeuron object. Parameters: neuronType The type of a neuron filter. a Parameter 'a'. b Parameter 'b'. c Parameter 'c'. Returns: A valid MPSNNNeuronDescriptor object or nil, if failure. + (nonnull MPSNNNeuronDescriptor*) cnnNeuronPReLUDescriptorWithData: (NSData *_Nonnull) data(bool) noCopy Make a descriptor for a neuron of type MPSCNNNeuronTypePReLU. The PReLU neuron is the same as a ReLU neuron, except parameter 'a' is per feature channel. Parameters: data A NSData containing a float array with the per feature channel value of PReLu parameter. The number of float values in this array usually corresponds to number of output channels in a convolution layer. The descriptor retains the NSData object. noCopy An optimization flag that tells us whether the NSData allocation is suitable for use directly with no copying of the data into internal storage. This allocation has to match the same restrictions as listed for the newBufferWithBytesNoCopy:length:options:deallocator: method of MTLBuffer. Returns: A valid MPSNNNeuronDescriptor object for a neuron of type MPSCNNNeuronTypePReLU or nil, if failure - (nonnull instancetype) init You must use one of the interfaces below instead. Property Documentation - (float) a [read], [write], [nonatomic], [assign] - (float) b [read], [write], [nonatomic], [assign] - (float) c [read], [write], [nonatomic], [assign] - (NSData*) data [read], [write], [nonatomic], [retain] - (MPSCNNNeuronType) neuronType [read], [write], [nonatomic], [assign] Author Generated automatically by Doxygen for MetalPerformanceShaders.framework from the source code. Version MetalPerformanceShaders-100 Thu Feb 8 2018 MPSNNNeuronDescriptor(3)