Class MPSCNNBatchNormalization

  • All Implemented Interfaces:
    NSCoding, NSCopying, NSSecureCoding, NSObject

    public class MPSCNNBatchNormalization
    extends MPSCNNKernel
    MPSCNNBatchNormalization [@dependency] This depends on Metal.framework MPSCNNBatchNormalization normalizes input images using per-channel means and variances. for (c = 0; c < numberOfFeatureChannels; ++c) { input_image = in(:,:,c,:); output_image = (input_image - mean[c]) * gamma[c] / sqrt(variance[c] + epsilon) + beta[c]; out(:,:,c,:) = output_image; } API-Since: 11.3
    • Constructor Detail

      • MPSCNNBatchNormalization

        protected MPSCNNBatchNormalization​(org.moe.natj.general.Pointer peer)
    • Method Detail

      • accessInstanceVariablesDirectly

        public static boolean accessInstanceVariablesDirectly()
      • automaticallyNotifiesObserversForKey

        public static boolean automaticallyNotifiesObserversForKey​(@NotNull
                                                                   @NotNull java.lang.String key)
      • cancelPreviousPerformRequestsWithTarget

        public static void cancelPreviousPerformRequestsWithTarget​(@NotNull
                                                                   @NotNull java.lang.Object aTarget)
      • cancelPreviousPerformRequestsWithTargetSelectorObject

        public static void cancelPreviousPerformRequestsWithTargetSelectorObject​(@NotNull
                                                                                 @NotNull java.lang.Object aTarget,
                                                                                 @NotNull
                                                                                 @NotNull org.moe.natj.objc.SEL aSelector,
                                                                                 @Nullable
                                                                                 @Nullable java.lang.Object anArgument)
      • classFallbacksForKeyedArchiver

        @NotNull
        public static @NotNull NSArray<java.lang.String> classFallbacksForKeyedArchiver()
      • classForKeyedUnarchiver

        @NotNull
        public static @NotNull org.moe.natj.objc.Class classForKeyedUnarchiver()
      • debugDescription_static

        public static java.lang.String debugDescription_static()
      • description_static

        public static java.lang.String description_static()
      • encodeToCommandBufferSourceImageBatchNormalizationStateDestinationImage

        public void encodeToCommandBufferSourceImageBatchNormalizationStateDestinationImage​(@NotNull
                                                                                            @NotNull MTLCommandBuffer commandBuffer,
                                                                                            @NotNull
                                                                                            @NotNull MPSImage sourceImage,
                                                                                            @NotNull
                                                                                            @NotNull MPSCNNBatchNormalizationState batchNormalizationState,
                                                                                            @NotNull
                                                                                            @NotNull MPSImage destinationImage)
        Encode this kernel to a command buffer for a single image using a batch normalization state.
        Parameters:
        commandBuffer - A valid command buffer to receive the kernel.
        sourceImage - The source MPSImage.
        batchNormalizationState - A MPSCNNBatchNormalizationState containing weights and/or statistics to use for the batch normalization. If the state is temporary its read count will be decremented.
        destinationImage - An MPSImage to contain the resulting normalized and scaled image.
      • epsilon

        public float epsilon()
        [@property] epsilon The epsilon value used in the batch normalization formula to bias the variance when normalizing.
      • hash_static

        public static long hash_static()
      • initWithCoderDevice

        public MPSCNNBatchNormalization initWithCoderDevice​(@NotNull
                                                            @NotNull NSCoder aDecoder,
                                                            @NotNull
                                                            @NotNull java.lang.Object 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 a subclass of NSCoder that implements the protocol to tell MPS the MTLDevice to use.
        Overrides:
        initWithCoderDevice in class MPSCNNKernel
        Parameters:
        aDecoder - The NSCoder subclass with your serialized MPSKernel
        device - The MTLDevice on which to make the MPSKernel
        Returns:
        A new MPSCNNBatchNormalization object, or nil if failure.
      • initWithDevice

        public MPSCNNBatchNormalization initWithDevice​(@NotNull
                                                       @NotNull java.lang.Object device)
        Description copied from class: MPSCNNKernel
        Standard init with default properties per filter type
        Overrides:
        initWithDevice in class MPSCNNKernel
        Parameters:
        device - The device that the filter will be used on. May not be NULL.
        Returns:
        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.
      • initWithDeviceDataSource

        public MPSCNNBatchNormalization initWithDeviceDataSource​(@NotNull
                                                                 @NotNull MTLDevice device,
                                                                 @NotNull
                                                                 @NotNull MPSCNNBatchNormalizationDataSource dataSource)
        Initializes a batch normalization kernel using a data source.
        Parameters:
        device - The MTLDevice on which this filter will be used
        dataSource - A pointer to a object that conforms to the MPSCNNBatchNormalizationDataSource protocol. The data source provides filter weights and bias terms and, optionally, image statistics which may be used to perform the normalization.
        Returns:
        A valid MPSCNNBatchNormalization object or nil, if failure.
      • initWithDeviceDataSourceFusedNeuronDescriptor

        public MPSCNNBatchNormalization initWithDeviceDataSourceFusedNeuronDescriptor​(@NotNull
                                                                                      @NotNull MTLDevice device,
                                                                                      @NotNull
                                                                                      @NotNull MPSCNNBatchNormalizationDataSource dataSource,
                                                                                      @Nullable
                                                                                      @Nullable MPSNNNeuronDescriptor fusedNeuronDescriptor)
        Initializes a batch normalization kernel using a data source and a neuron descriptor.
        Parameters:
        device - The MTLDevice on which this filter will be used
        dataSource - A pointer to a object that conforms to the MPSCNNBatchNormalizationDataSource protocol. The data source provides filter weights and bias terms and, optionally, image statistics which may be used to perform the normalization.
        fusedNeuronDescriptor - A MPSNNNeuronDescriptor object which specifies a neuron activation function to be applied to the result of the batch normalization.
        Returns:
        A valid MPSCNNBatchNormalization object or nil, if failure. API-Since: 12.0
      • instanceMethodSignatureForSelector

        public static NSMethodSignature instanceMethodSignatureForSelector​(org.moe.natj.objc.SEL aSelector)
      • instancesRespondToSelector

        public static boolean instancesRespondToSelector​(org.moe.natj.objc.SEL aSelector)
      • isSubclassOfClass

        public static boolean isSubclassOfClass​(org.moe.natj.objc.Class aClass)
      • keyPathsForValuesAffectingValueForKey

        @NotNull
        public static @NotNull NSSet<java.lang.String> keyPathsForValuesAffectingValueForKey​(@NotNull
                                                                                             @NotNull java.lang.String key)
      • numberOfFeatureChannels

        public long numberOfFeatureChannels()
        [@property] numberOfFeatureChannels The number of feature channels in an image to be normalized.
      • reloadDataSource

        @Deprecated
        public void reloadDataSource​(@NotNull
                                     @NotNull MPSCNNBatchNormalizationDataSource dataSource)
        Deprecated.
        Reinitialize the filter using a data source.
        Parameters:
        dataSource - The data source which will provide the weights and, optionally, the image batch statistics with which to normalize. API-Since: 11.3 Deprecated-Since: 12.0
      • reloadGammaAndBetaFromDataSource

        public void reloadGammaAndBetaFromDataSource()
        Reinitialize the filter's gamma and beta values using the data source provided at kernel initialization. API-Since: 12.0
      • reloadGammaAndBetaWithCommandBufferGammaAndBetaState

        public void reloadGammaAndBetaWithCommandBufferGammaAndBetaState​(@NotNull
                                                                         @NotNull MTLCommandBuffer commandBuffer,
                                                                         @NotNull
                                                                         @NotNull MPSCNNNormalizationGammaAndBetaState gammaAndBetaState)
        Reload data using new gamma and beta terms contained within an MPSCNNNormalizationGammaAndBetaState object.
        Parameters:
        commandBuffer - The command buffer on which to encode the reload.
        gammaAndBetaState - The state containing the updated weights which are to be reloaded.
      • reloadMeanAndVarianceFromDataSource

        public void reloadMeanAndVarianceFromDataSource()
        Reinitialize the filter's mean and variance values using the data source provided at kernel initialization. API-Since: 12.0
      • reloadMeanAndVarianceWithCommandBufferMeanAndVarianceState

        public void reloadMeanAndVarianceWithCommandBufferMeanAndVarianceState​(@NotNull
                                                                               @NotNull MTLCommandBuffer commandBuffer,
                                                                               @NotNull
                                                                               @NotNull MPSCNNNormalizationMeanAndVarianceState meanAndVarianceState)
        Reload data using new mean and variance terms contained within an MPSCNNNormalizationMeanAndVarianceState object.
        Parameters:
        commandBuffer - The command buffer on which to encode the reload.
        meanAndVarianceState - The state containing the updated statistics which are to be reloaded. API-Since: 12.0
      • resolveClassMethod

        public static boolean resolveClassMethod​(org.moe.natj.objc.SEL sel)
      • resolveInstanceMethod

        public static boolean resolveInstanceMethod​(org.moe.natj.objc.SEL sel)
      • resultStateForSourceImageSourceStatesDestinationImage

        @Nullable
        public @Nullable MPSCNNBatchNormalizationState resultStateForSourceImageSourceStatesDestinationImage​(@NotNull
                                                                                                             @NotNull MPSImage sourceImage,
                                                                                                             @Nullable
                                                                                                             @Nullable NSArray<? extends MPSState> sourceStates,
                                                                                                             @NotNull
                                                                                                             @NotNull MPSImage destinationImage)
        Return an MPSCNNBatchNormalizationState object which may be used with a MPSCNNBatchNormalization filter.
        Overrides:
        resultStateForSourceImageSourceStatesDestinationImage in class MPSCNNKernel
        Parameters:
        sourceImage - The MPSImage consumed by the associated -encode call.
        sourceStates - The list of MPSStates consumed by the associated -encode call, for a batch size of 1.
        destinationImage - The destination image for the encode call
        Returns:
        The list of states produced by the -encode call for batch size of 1. When the batch size is not 1, this function will be called repeatedly unless -isResultStateReusedAcrossBatch returns YES. If -isResultStateReusedAcrossBatch returns YES, then it will be called once per batch and the MPSStateBatch array will contain MPSStateBatch.length references to the same object. API-Since: 11.3
      • setEpsilon

        public void setEpsilon​(float value)
        [@property] epsilon The epsilon value used in the batch normalization formula to bias the variance when normalizing.
      • setVersion_static

        public static void setVersion_static​(long aVersion)
      • superclass_static

        public static org.moe.natj.objc.Class superclass_static()
      • supportsSecureCoding

        public static boolean supportsSecureCoding()
      • _supportsSecureCoding

        public boolean _supportsSecureCoding()
        Description copied from interface: NSSecureCoding
        This property must return YES on all classes that allow secure coding. Subclasses of classes that adopt NSSecureCoding and override initWithCoder: must also override this method and return YES. The Secure Coding Guide should be consulted when writing methods that decode data.
        Specified by:
        _supportsSecureCoding in interface NSSecureCoding
        Overrides:
        _supportsSecureCoding in class MPSCNNKernel
      • temporaryResultStateForCommandBufferSourceImageSourceStatesDestinationImage

        @Nullable
        public @Nullable MPSCNNBatchNormalizationState temporaryResultStateForCommandBufferSourceImageSourceStatesDestinationImage​(@NotNull
                                                                                                                                   @NotNull MTLCommandBuffer commandBuffer,
                                                                                                                                   @NotNull
                                                                                                                                   @NotNull MPSImage sourceImage,
                                                                                                                                   @Nullable
                                                                                                                                   @Nullable NSArray<? extends MPSState> sourceStates,
                                                                                                                                   @NotNull
                                                                                                                                   @NotNull MPSImage destinationImage)
        Return a temporary MPSCNNBatchNormalizationState object which may be used with a MPSCNNBatchNormalization filter.
        Overrides:
        temporaryResultStateForCommandBufferSourceImageSourceStatesDestinationImage in class MPSCNNKernel
        Parameters:
        commandBuffer - The command buffer to allocate the temporary storage against The state will only be valid on this command buffer.
        sourceImage - The MPSImage consumed by the associated -encode call.
        sourceStates - The list of MPSStates consumed by the associated -encode call, for a batch size of 1.
        destinationImage - The destination image for the encode call
        Returns:
        The list of states produced by the -encode call for batch size of 1. When the batch size is not 1, this function will be called repeatedly unless -isResultStateReusedAcrossBatch returns YES. If -isResultStateReusedAcrossBatch returns YES, then it will be called once per batch and the MPSStateBatch array will contain MPSStateBatch.length references to the same object. API-Since: 11.3
      • version_static

        public static long version_static()
      • useStoredAccessor

        @Deprecated
        public static boolean useStoredAccessor()
        Deprecated.