Query: mpscnncrosschannelnormalizationgradient
OS: mojave
Section: 3
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
MPSCNNCrossChannelNormalizationGradient(3) MetalPerformanceShaders.framework MPSCNNCrossChannelNormalizationGradient(3)NAMEMPSCNNCrossChannelNormalizationGradientSYNOPSIS#import <MPSCNNNormalization.h> Inherits MPSCNNGradientKernel. Instance Methods (nonnull instancetype) - initWithDevice:kernelSize: (nullable instancetype) - initWithCoder:device: Properties float alpha float beta float delta NSUInteger kernelSize Additional Inherited Members Detailed Description This depends on Metal.framework Specifies the normalization gradient filter across feature channels. This normalization filter applies the filter to a local region across nearby feature channels, but with no spatial extent (i.e., they have shape kernelSize x 1 x 1). The normalized output is given by: Y(i,j,k) = X(i,j,k) / L(i,j,k)^beta, where the normalizing factor is: L(i,j,k) = delta + alpha/N * (sum_{q in Q(k)} X(i,j,q)^2, where N is the kernel size. The window Q(k) itself is defined as: Q(k) = [max(0, k-floor(N/2)), min(D-1, k+floor((N-1)/2)], where k is the feature channel index (running from 0 to D-1) and D is the number of feature channels, and alpha, beta and delta are paremeters. It is the end-users responsibility to ensure that the combination of the parameters delta and alpha does not result in a situation where the denominator becomes zero - in such situations the resulting pixel-value is undefined. OutputGradient: dZ/dX(i,j,k) = dZ/dY(i,j,k) * (L(i,j,k)^-beta) - 2 * alpha * beta * X(i,j,k) * ( sum_{r in R(k)} dZ/dY(i,j,r) * X(i,j,r) * (L(i,j,r) ^ (-beta-1)) ) N is the kernel size. The window L(i) and K(j) itself is defined as: R(k) = [max(0, k-floor((N-1)/2)), min(D-1, k+floor(N/2)] For correct gradient computation all parameters must be the same as the original normalization filter. Method Documentation - (nullable instancetype) initWithCoder: (NSCoder *__nonnull) aDecoder(nonnull id< MTLDevice >) device NSSecureCoding 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. Parameters: aDecoder The NSCoder subclass with your serialized MPSKernel device The MTLDevice on which to make the MPSKernel Returns: A new MPSKernel object, or nil if failure. Reimplemented from MPSCNNGradientKernel. - (nonnull instancetype) initWithDevice: (nonnull id< MTLDevice >) device(NSUInteger) kernelSize Initialize a cross channel normalization gradient filter Parameters: device The device the filter will run on kernelSize The kernel filter size in each dimension. Returns: A valid MPSCNNCrossChannelNormalization object or nil, if failure. Property Documentation - alpha [read], [write], [nonatomic], [assign] The value of alpha. Default is 1.0. Must be non-negative. - beta [read], [write], [nonatomic], [assign] The value of beta. Default is 5.0 - delta [read], [write], [nonatomic], [assign] The value of delta. Default is 1.0 - kernelSize [read], [nonatomic], [assign] The size of the square filter window. Default is 5 Author Generated automatically by Doxygen for MetalPerformanceShaders.framework from the source code. Version MetalPerformanceShaders-100 Thu Feb 8 2018 MPSCNNCrossChannelNormalizationGradient(3)