Package apple.metalperformanceshaders
Class MPSCNNBatchNormalization
- java.lang.Object
-
- org.moe.natj.general.NativeObject
-
- org.moe.natj.objc.ObjCObject
-
- apple.NSObject
-
- apple.metalperformanceshaders.MPSKernel
-
- apple.metalperformanceshaders.MPSCNNKernel
-
- apple.metalperformanceshaders.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; }
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class apple.NSObject
NSObject.Function_instanceMethodForSelector_ret, NSObject.Function_methodForSelector_ret
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedMPSCNNBatchNormalization(org.moe.natj.general.Pointer peer)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean_supportsSecureCoding()This property must return YES on all classes that allow secure coding.static booleanaccessInstanceVariablesDirectly()static MPSCNNBatchNormalizationalloc()static java.lang.ObjectallocWithZone(org.moe.natj.general.ptr.VoidPtr zone)static booleanautomaticallyNotifiesObserversForKey(java.lang.String key)static voidcancelPreviousPerformRequestsWithTarget(java.lang.Object aTarget)static voidcancelPreviousPerformRequestsWithTargetSelectorObject(java.lang.Object aTarget, org.moe.natj.objc.SEL aSelector, java.lang.Object anArgument)static NSArray<java.lang.String>classFallbacksForKeyedArchiver()static org.moe.natj.objc.ClassclassForKeyedUnarchiver()MPSCNNBatchNormalizationDataSourcedataSource()The data source the batch normalization was initialized withstatic java.lang.StringdebugDescription_static()static java.lang.Stringdescription_static()voidencodeToCommandBufferSourceImageBatchNormalizationStateDestinationImage(MTLCommandBuffer commandBuffer, MPSImage sourceImage, MPSCNNBatchNormalizationState batchNormalizationState, MPSImage destinationImage)Encode this kernel to a command buffer for a single image using a batch normalization state.floatepsilon()[@property] epsilon The epsilon value used in the batch normalization formula to bias the variance when normalizing.static longhash_static()MPSCNNBatchNormalizationinit()MPSCNNBatchNormalizationinitWithCoder(NSCoder aDecoder)NS_DESIGNATED_INITIALIZERMPSCNNBatchNormalizationinitWithCoderDevice(NSCoder aDecoder, 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.MPSCNNBatchNormalizationinitWithDevice(java.lang.Object device)Standard init with default properties per filter typeMPSCNNBatchNormalizationinitWithDeviceDataSource(MTLDevice device, MPSCNNBatchNormalizationDataSource dataSource)Initializes a batch normalization kernel using a data source.MPSCNNBatchNormalizationinitWithDeviceDataSourceFusedNeuronDescriptor(MTLDevice device, MPSCNNBatchNormalizationDataSource dataSource, MPSNNNeuronDescriptor fusedNeuronDescriptor)Initializes a batch normalization kernel using a data source and a neuron descriptor.static NSObject.Function_instanceMethodForSelector_retinstanceMethodForSelector(org.moe.natj.objc.SEL aSelector)static NSMethodSignatureinstanceMethodSignatureForSelector(org.moe.natj.objc.SEL aSelector)static booleaninstancesRespondToSelector(org.moe.natj.objc.SEL aSelector)static booleanisSubclassOfClass(org.moe.natj.objc.Class aClass)static NSSet<java.lang.String>keyPathsForValuesAffectingValueForKey(java.lang.String key)static java.lang.Objectnew_objc()longnumberOfFeatureChannels()[@property] numberOfFeatureChannels The number of feature channels in an image to be normalized.voidreloadDataSource(MPSCNNBatchNormalizationDataSource dataSource)Reinitialize the filter using a data source.voidreloadGammaAndBetaFromDataSource()Reinitialize the filter's gamma and beta values using the data source provided at kernel initialization.voidreloadGammaAndBetaWithCommandBufferGammaAndBetaState(MTLCommandBuffer commandBuffer, MPSCNNNormalizationGammaAndBetaState gammaAndBetaState)Reload data using new gamma and beta terms contained within an MPSCNNNormalizationGammaAndBetaState object.voidreloadMeanAndVarianceFromDataSource()Reinitialize the filter's mean and variance values using the data source provided at kernel initialization.voidreloadMeanAndVarianceWithCommandBufferMeanAndVarianceState(MTLCommandBuffer commandBuffer, MPSCNNNormalizationMeanAndVarianceState meanAndVarianceState)Reload data using new mean and variance terms contained within an MPSCNNNormalizationMeanAndVarianceState object.static booleanresolveClassMethod(org.moe.natj.objc.SEL sel)static booleanresolveInstanceMethod(org.moe.natj.objc.SEL sel)MPSCNNBatchNormalizationStateresultStateForSourceImageSourceStatesDestinationImage(MPSImage sourceImage, NSArray<? extends MPSState> sourceStates, MPSImage destinationImage)Return an MPSCNNBatchNormalizationState object which may be used with a MPSCNNBatchNormalization filter.voidsetEpsilon(float value)[@property] epsilon The epsilon value used in the batch normalization formula to bias the variance when normalizing.static voidsetVersion_static(long aVersion)static org.moe.natj.objc.Classsuperclass_static()static booleansupportsSecureCoding()MPSCNNBatchNormalizationStatetemporaryResultStateForCommandBufferSourceImageSourceStatesDestinationImage(MTLCommandBuffer commandBuffer, MPSImage sourceImage, NSArray<? extends MPSState> sourceStates, MPSImage destinationImage)Return a temporary MPSCNNBatchNormalizationState object which may be used with a MPSCNNBatchNormalization filter.static longversion_static()-
Methods inherited from class apple.metalperformanceshaders.MPSCNNKernel
appendBatchBarrier, clipRect, destinationFeatureChannelOffset, destinationImageAllocator, destinationImageDescriptorForSourceImagesSourceStates, dilationRateX, dilationRateY, edgeMode, encodeToCommandBufferSourceImage, encodeToCommandBufferSourceImageDestinationImage, encodeToCommandBufferSourceImageDestinationStateDestinationImage, encodeToCommandBufferSourceImageDestinationStateDestinationStateIsTemporary, encodingStorageSizeForSourceImageSourceStatesDestinationImage, isBackwards, isResultStateReusedAcrossBatch, isStateModified, kernelHeight, kernelWidth, offset, padding, setClipRect, setDestinationFeatureChannelOffset, setDestinationImageAllocator, setEdgeMode, setOffset, setPadding, setSourceFeatureChannelMaxCount, setSourceFeatureChannelOffset, sourceFeatureChannelMaxCount, sourceFeatureChannelOffset, strideInPixelsX, strideInPixelsY
-
Methods inherited from class apple.metalperformanceshaders.MPSKernel
copyWithZone, copyWithZoneDevice, device, encodeWithCoder, label, options, setLabel, setOptions
-
Methods inherited from class apple.NSObject
accessibilityActivate, accessibilityActivationPoint, accessibilityAssistiveTechnologyFocusedIdentifiers, accessibilityAttributedHint, accessibilityAttributedLabel, accessibilityAttributedUserInputLabels, accessibilityAttributedValue, accessibilityContainerType, accessibilityCustomActions, accessibilityCustomRotors, accessibilityDecrement, accessibilityDragSourceDescriptors, accessibilityDropPointDescriptors, accessibilityElementAtIndex, accessibilityElementCount, accessibilityElementDidBecomeFocused, accessibilityElementDidLoseFocus, accessibilityElementIsFocused, accessibilityElements, accessibilityElementsHidden, accessibilityFrame, accessibilityHint, accessibilityIncrement, accessibilityLabel, accessibilityLanguage, accessibilityNavigationStyle, accessibilityPath, accessibilityPerformEscape, accessibilityPerformMagicTap, accessibilityRespondsToUserInteraction, accessibilityScroll, accessibilityTextualContext, accessibilityTraits, accessibilityUserInputLabels, accessibilityValue, accessibilityViewIsModal, addObserverForKeyPathOptionsContext, attemptRecoveryFromErrorOptionIndex, attemptRecoveryFromErrorOptionIndexDelegateDidRecoverSelectorContextInfo, autoContentAccessingProxy, awakeAfterUsingCoder, awakeFromNib, class_objc, classForCoder, classForKeyedArchiver, copy, dealloc, debugDescription, description, dictionaryWithValuesForKeys, didChangeValueForKey, didChangeValueForKeyWithSetMutationUsingObjects, didChangeValuesAtIndexesForKey, doesNotRecognizeSelector, fileManagerShouldProceedAfterError, fileManagerWillProcessPath, finalize_objc, forwardingTargetForSelector, forwardInvocation, hash, indexOfAccessibilityElement, isAccessibilityElement, isEqual, isKindOfClass, isMemberOfClass, isProxy, methodForSelector, methodSignatureForSelector, mutableArrayValueForKey, mutableArrayValueForKeyPath, mutableCopy, mutableOrderedSetValueForKey, mutableOrderedSetValueForKeyPath, mutableSetValueForKey, mutableSetValueForKeyPath, observationInfo, observeValueForKeyPathOfObjectChangeContext, performSelector, performSelectorInBackgroundWithObject, performSelectorOnMainThreadWithObjectWaitUntilDone, performSelectorOnMainThreadWithObjectWaitUntilDoneModes, performSelectorOnThreadWithObjectWaitUntilDone, performSelectorOnThreadWithObjectWaitUntilDoneModes, performSelectorWithObject, performSelectorWithObjectAfterDelay, performSelectorWithObjectAfterDelayInModes, performSelectorWithObjectWithObject, prepareForInterfaceBuilder, provideImageDataBytesPerRowOrigin_Size_UserInfo, removeObserverForKeyPath, removeObserverForKeyPathContext, replacementObjectForCoder, replacementObjectForKeyedArchiver, respondsToSelector, self, setAccessibilityActivationPoint, setAccessibilityAttributedHint, setAccessibilityAttributedLabel, setAccessibilityAttributedUserInputLabels, setAccessibilityAttributedValue, setAccessibilityContainerType, setAccessibilityCustomActions, setAccessibilityCustomRotors, setAccessibilityDragSourceDescriptors, setAccessibilityDropPointDescriptors, setAccessibilityElements, setAccessibilityElementsHidden, setAccessibilityFrame, setAccessibilityHint, setAccessibilityLabel, setAccessibilityLanguage, setAccessibilityNavigationStyle, setAccessibilityPath, setAccessibilityRespondsToUserInteraction, setAccessibilityTextualContext, setAccessibilityTraits, setAccessibilityUserInputLabels, setAccessibilityValue, setAccessibilityViewIsModal, setIsAccessibilityElement, setNilValueForKey, setObservationInfo, setShouldGroupAccessibilityChildren, setValueForKey, setValueForKeyPath, setValueForUndefinedKey, setValuesForKeysWithDictionary, shouldGroupAccessibilityChildren, superclass, validateValueForKeyError, validateValueForKeyPathError, valueForKey, valueForKeyPath, valueForUndefinedKey, willChangeValueForKey, willChangeValueForKeyWithSetMutationUsingObjects, willChangeValuesAtIndexesForKey
-
-
-
-
Method Detail
-
accessInstanceVariablesDirectly
public static boolean accessInstanceVariablesDirectly()
-
alloc
public static MPSCNNBatchNormalization alloc()
-
allocWithZone
public static java.lang.Object allocWithZone(org.moe.natj.general.ptr.VoidPtr zone)
-
automaticallyNotifiesObserversForKey
public static boolean automaticallyNotifiesObserversForKey(java.lang.String key)
-
cancelPreviousPerformRequestsWithTarget
public static void cancelPreviousPerformRequestsWithTarget(java.lang.Object aTarget)
-
cancelPreviousPerformRequestsWithTargetSelectorObject
public static void cancelPreviousPerformRequestsWithTargetSelectorObject(java.lang.Object aTarget, org.moe.natj.objc.SEL aSelector, java.lang.Object anArgument)
-
classFallbacksForKeyedArchiver
public static NSArray<java.lang.String> classFallbacksForKeyedArchiver()
-
classForKeyedUnarchiver
public static org.moe.natj.objc.Class classForKeyedUnarchiver()
-
dataSource
public MPSCNNBatchNormalizationDataSource dataSource()
The data source the batch normalization was initialized with
-
debugDescription_static
public static java.lang.String debugDescription_static()
-
description_static
public static java.lang.String description_static()
-
encodeToCommandBufferSourceImageBatchNormalizationStateDestinationImage
public void encodeToCommandBufferSourceImageBatchNormalizationStateDestinationImage(MTLCommandBuffer commandBuffer, MPSImage sourceImage, MPSCNNBatchNormalizationState batchNormalizationState, 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()
-
init
public MPSCNNBatchNormalization init()
- Overrides:
initin classMPSCNNKernel
-
initWithCoder
public MPSCNNBatchNormalization initWithCoder(NSCoder aDecoder)
Description copied from interface:NSCodingNS_DESIGNATED_INITIALIZER- Specified by:
initWithCoderin interfaceNSCoding- Overrides:
initWithCoderin classMPSCNNKernel
-
initWithCoderDevice
public MPSCNNBatchNormalization initWithCoderDevice(NSCoder aDecoder, 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 theprotocol to tell MPS the MTLDevice to use. - Overrides:
initWithCoderDevicein classMPSCNNKernel- Parameters:
aDecoder- The NSCoder subclass with your serialized MPSKerneldevice- The MTLDevice on which to make the MPSKernel- Returns:
- A new MPSCNNBatchNormalization object, or nil if failure.
-
initWithDevice
public MPSCNNBatchNormalization initWithDevice(java.lang.Object device)
Description copied from class:MPSCNNKernelStandard init with default properties per filter type- Overrides:
initWithDevicein classMPSCNNKernel- 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(MTLDevice device, MPSCNNBatchNormalizationDataSource dataSource)
Initializes a batch normalization kernel using a data source.- Parameters:
device- The MTLDevice on which this filter will be useddataSource- 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(MTLDevice device, MPSCNNBatchNormalizationDataSource dataSource, 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 useddataSource- 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.
-
instanceMethodForSelector
public static NSObject.Function_instanceMethodForSelector_ret instanceMethodForSelector(org.moe.natj.objc.SEL aSelector)
-
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
public static NSSet<java.lang.String> keyPathsForValuesAffectingValueForKey(java.lang.String key)
-
new_objc
public static java.lang.Object new_objc()
-
numberOfFeatureChannels
public long numberOfFeatureChannels()
[@property] numberOfFeatureChannels The number of feature channels in an image to be normalized.
-
reloadDataSource
public void reloadDataSource(MPSCNNBatchNormalizationDataSource dataSource)
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.
-
reloadGammaAndBetaFromDataSource
public void reloadGammaAndBetaFromDataSource()
Reinitialize the filter's gamma and beta values using the data source provided at kernel initialization.
-
reloadGammaAndBetaWithCommandBufferGammaAndBetaState
public void reloadGammaAndBetaWithCommandBufferGammaAndBetaState(MTLCommandBuffer commandBuffer, 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.
-
reloadMeanAndVarianceWithCommandBufferMeanAndVarianceState
public void reloadMeanAndVarianceWithCommandBufferMeanAndVarianceState(MTLCommandBuffer commandBuffer, 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.
-
resolveClassMethod
public static boolean resolveClassMethod(org.moe.natj.objc.SEL sel)
-
resolveInstanceMethod
public static boolean resolveInstanceMethod(org.moe.natj.objc.SEL sel)
-
resultStateForSourceImageSourceStatesDestinationImage
public MPSCNNBatchNormalizationState resultStateForSourceImageSourceStatesDestinationImage(MPSImage sourceImage, NSArray<? extends MPSState> sourceStates, MPSImage destinationImage)
Return an MPSCNNBatchNormalizationState object which may be used with a MPSCNNBatchNormalization filter.- Overrides:
resultStateForSourceImageSourceStatesDestinationImagein classMPSCNNKernel- 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.
-
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:NSSecureCodingThis 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:
_supportsSecureCodingin interfaceNSSecureCoding- Overrides:
_supportsSecureCodingin classMPSCNNKernel
-
temporaryResultStateForCommandBufferSourceImageSourceStatesDestinationImage
public MPSCNNBatchNormalizationState temporaryResultStateForCommandBufferSourceImageSourceStatesDestinationImage(MTLCommandBuffer commandBuffer, MPSImage sourceImage, NSArray<? extends MPSState> sourceStates, MPSImage destinationImage)
Return a temporary MPSCNNBatchNormalizationState object which may be used with a MPSCNNBatchNormalization filter.- Overrides:
temporaryResultStateForCommandBufferSourceImageSourceStatesDestinationImagein classMPSCNNKernel- 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.
-
version_static
public static long version_static()
-
-