MPSCNNLocalContrastNormalizationGradientNode

Struct MPSCNNLocalContrastNormalizationGradientNode 

Source
pub struct MPSCNNLocalContrastNormalizationGradientNode { /* private fields */ }
Available on crate feature MPSNNGraphNodes only.
Expand description

Implementations§

Source§

impl MPSCNNLocalContrastNormalizationGradientNode

Source

pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight( source_gradient: &MPSNNImageNode, source_image: &MPSNNImageNode, gradient_state: &MPSNNGradientStateNode, kernel_width: NSUInteger, kernel_height: NSUInteger, ) -> Retained<Self>

Available on crate feature MPSNeuralNetwork only.
Source

pub unsafe fn initWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight( this: Allocated<Self>, source_gradient: &MPSNNImageNode, source_image: &MPSNNImageNode, gradient_state: &MPSNNGradientStateNode, kernel_width: NSUInteger, kernel_height: NSUInteger, ) -> Retained<Self>

Available on crate feature MPSNeuralNetwork only.
Source

pub unsafe fn alpha(&self) -> c_float

Available on crate feature MPSNeuralNetwork only.

The value of alpha. Default is 0.0

The default value 0.0 is not recommended and is preserved for backwards compatibility. With alpha 0, it performs a local mean subtraction. The MPSCNNLocalContrastNormalizationNode used with the MPSNNGraph uses 1.0 as a default.

Source

pub unsafe fn setAlpha(&self, alpha: c_float)

Available on crate feature MPSNeuralNetwork only.

Setter for alpha.

Source

pub unsafe fn beta(&self) -> c_float

Available on crate feature MPSNeuralNetwork only.

The value of beta. Default is 0.5

Source

pub unsafe fn setBeta(&self, beta: c_float)

Available on crate feature MPSNeuralNetwork only.

Setter for beta.

Source

pub unsafe fn delta(&self) -> c_float

Available on crate feature MPSNeuralNetwork only.

The value of delta. Default is 1/1024

Source

pub unsafe fn setDelta(&self, delta: c_float)

Available on crate feature MPSNeuralNetwork only.

Setter for delta.

Source

pub unsafe fn p0(&self) -> c_float

Available on crate feature MPSNeuralNetwork only.

The value of p0. Default is 1.0

Source

pub unsafe fn setP0(&self, p0: c_float)

Available on crate feature MPSNeuralNetwork only.

Setter for p0.

Source

pub unsafe fn pm(&self) -> c_float

Available on crate feature MPSNeuralNetwork only.

The value of pm. Default is 0.0

Source

pub unsafe fn setPm(&self, pm: c_float)

Available on crate feature MPSNeuralNetwork only.

Setter for pm.

Source

pub unsafe fn ps(&self) -> c_float

Available on crate feature MPSNeuralNetwork only.

The value of ps. Default is 1.0

Source

pub unsafe fn setPs(&self, ps: c_float)

Available on crate feature MPSNeuralNetwork only.

Setter for ps.

Source

pub unsafe fn kernelWidth(&self) -> NSUInteger

Available on crate feature MPSNeuralNetwork only.
Source

pub unsafe fn kernelHeight(&self) -> NSUInteger

Available on crate feature MPSNeuralNetwork only.
Source§

impl MPSCNNLocalContrastNormalizationGradientNode

Methods declared on superclass MPSNNFilterNode.

Source

pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>

Available on crate feature MPSNeuralNetwork only.
Source§

impl MPSCNNLocalContrastNormalizationGradientNode

Methods declared on superclass NSObject.

Source

pub unsafe fn new() -> Retained<Self>

Available on crate feature MPSNeuralNetwork only.

Methods from Deref<Target = MPSNNGradientFilterNode>§

Source

pub unsafe fn gradientFilterWithSources( &self, source_gradient: &NSArray<MPSNNImageNode>, ) -> Retained<MPSNNGradientFilterNode>

Available on crate feature MPSNeuralNetwork only.
Source

pub unsafe fn gradientFiltersWithSources( &self, source_gradient: &NSArray<MPSNNImageNode>, ) -> Retained<NSArray<MPSNNGradientFilterNode>>

Available on crate feature MPSNeuralNetwork only.
Source

pub unsafe fn gradientFilterWithSource( &self, source_gradient: &MPSNNImageNode, ) -> Retained<MPSNNGradientFilterNode>

Available on crate feature MPSNeuralNetwork only.
Source

pub unsafe fn gradientFiltersWithSource( &self, source_gradient: &MPSNNImageNode, ) -> Retained<NSArray<MPSNNGradientFilterNode>>

Available on crate feature MPSNeuralNetwork only.

Methods from Deref<Target = MPSNNFilterNode>§

Source

pub unsafe fn resultImage(&self) -> Retained<MPSNNImageNode>

Available on crate feature MPSNeuralNetwork only.

Get the node representing the image result of the filter

Except where otherwise noted, the precision used for the result image (see format property) is copied from the precision from the first input image node.

Source

pub unsafe fn resultState(&self) -> Option<Retained<MPSNNStateNode>>

Available on crate feature MPSNeuralNetwork only.

convenience method for resultStates[0]

If resultStates is nil, returns nil

Source

pub unsafe fn resultStates(&self) -> Option<Retained<NSArray<MPSNNStateNode>>>

Available on crate feature MPSNeuralNetwork only.

Get the node representing the state result of the filter

If more than one, see description of subclass for ordering.

Source

pub unsafe fn paddingPolicy(&self) -> Retained<ProtocolObject<dyn MPSNNPadding>>

Available on crate features MPSNeuralNetwork and MPSNeuralNetworkTypes only.

The padding method used for the filter node

The padding policy configures how the filter centers the region of interest in the source image. It principally is responsible for setting the MPSCNNKernel.offset and the size of the image produced, and sometimes will also configure .sourceFeatureChannelOffset, .sourceFeatureChannelMaxCount, and .edgeMode. It is permitted to set any other filter properties as needed using a custom padding policy. The default padding policy varies per filter to conform to consensus expectation for the behavior of that filter. In some cases, pre-made padding policies are provided to match the behavior of common neural networking frameworks with particularly complex or unexpected behavior for specific nodes. See MPSNNDefaultPadding class methods in MPSNeuralNetworkTypes.h for more.

BUG: MPS doesn’t provide a good way to reset the MPSKernel properties in the context of a MPSNNGraph after the kernel is finished encoding. These values carry on to the next time the graph is used. Consequently, if your custom padding policy modifies the property as a function of the previous value, e.g.:

kernel.someProperty += 2;

then the second time the graph runs, the property may have an inconsistent value, leading to unexpected behavior. The default padding computation runs before the custom padding method to provide it with a sense of what is expected for the default configuration and will reinitialize the value in the case of the .offset. However, that computation usually doesn’t reset other properties. In such cases, the custom padding policy may need to keep a record of the original value to enable consistent behavior.

Source

pub unsafe fn setPaddingPolicy( &self, padding_policy: &ProtocolObject<dyn MPSNNPadding>, )

Available on crate features MPSNeuralNetwork and MPSNeuralNetworkTypes only.

Setter for paddingPolicy.

Source

pub unsafe fn label(&self) -> Option<Retained<NSString>>

Available on crate feature MPSNeuralNetwork only.

A string to help identify this object.

Source

pub unsafe fn setLabel(&self, label: Option<&NSString>)

Available on crate feature MPSNeuralNetwork only.

Setter for label.

This is copied when set.

Source

pub unsafe fn gradientFilterWithSource( &self, gradient_image: &MPSNNImageNode, ) -> Retained<MPSNNGradientFilterNode>

Available on crate feature MPSNeuralNetwork only.

Return the gradient (backwards) version of this filter.

The backwards training version of the filter will be returned. The non-gradient image and state arguments for the filter are automatically obtained from the target.

Parameter gradientImage: The gradient images corresponding with the resultImage of the target

Source

pub unsafe fn gradientFilterWithSources( &self, gradient_images: &NSArray<MPSNNImageNode>, ) -> Retained<MPSNNGradientFilterNode>

Available on crate feature MPSNeuralNetwork only.

Return the gradient (backwards) version of this filter.

The backwards training version of the filter will be returned. The non-gradient image and state arguments for the filter are automatically obtained from the target.

Parameter gradientImages: The gradient images corresponding with the resultImage of the target

Source

pub unsafe fn gradientFiltersWithSources( &self, gradient_images: &NSArray<MPSNNImageNode>, ) -> Retained<NSArray<MPSNNGradientFilterNode>>

Available on crate feature MPSNeuralNetwork only.

Return multiple gradient versions of the filter

MPSNNFilters that consume multiple inputs generally result in multiple conjugate filters for the gradient computation at the end of training. For example, a single concatenation operation that concatenates multple images will result in an array of slice operators that carve out subsections of the input gradient image.

Source

pub unsafe fn gradientFiltersWithSource( &self, gradient_image: &MPSNNImageNode, ) -> Retained<NSArray<MPSNNGradientFilterNode>>

Available on crate feature MPSNeuralNetwork only.

Return multiple gradient versions of the filter

MPSNNFilters that consume multiple inputs generally result in multiple conjugate filters for the gradient computation at the end of training. For example, a single concatenation operation that concatenates multple images will result in an array of slice operators that carve out subsections of the input gradient image.

Source

pub unsafe fn trainingGraphWithSourceGradient_nodeHandler( &self, gradient_image: Option<&MPSNNImageNode>, node_handler: MPSGradientNodeBlock, ) -> Option<Retained<NSArray<MPSNNFilterNode>>>

Available on crate features MPSNeuralNetwork and block2 only.

Build training graph from inference graph

This method will iteratively build the training portion of a graph based on an inference graph. Self should be the last node in the inference graph. It is typically a loss layer, but can be anything. Typically, the “inference graph” used here is the desired inference graph with a dropout node and a loss layer node appended.

The nodes that are created will have default properties. In certain cases, these may not be appropriate (e.g. if you want to do CPU based updates of convolution weights instead of default GPU updates.) In such cases, your application should use the nodeHandler to configure the new nodes as they are created.

BUG: This method can not follow links to regions of the graph that are connected to the rest of the graph solely via MPSNNStateNodes. A gradient image input is required to construct a MPSNNGradientFilterNode from a inference filter node.

Parameter gradientImage: The input gradient image for the first gradient node in the training section of the graph. If nil, self.resultImage is used. This results in a standard monolithic training graph. If the graph is instead divided into multiple subgraphs (potentially to allow for your custom code to appear inbetween MPSNNGraph segments) a new MPSImageNode* may be substituted.

Parameter nodeHandler: An optional block to allow for customization of gradient nodes and intermediate images as the graph is constructed. It may also be used to prune braches of the developing training graph. If nil, the default handler is used. It builds the full graph, and assigns any inferenceNodeSources[i].handle to their gradient counterparts.

Returns: The list of new MPSNNFilterNode training graph termini. These MPSNNFilterNodes are not necessarily all MPSNNGradientFilterNodes. To build a full list of nodes created, use a custom nodeHandler. If no nodes are created nil is returned.

§Safety

node_handler must be a valid pointer or null.

Methods from Deref<Target = NSObject>§

Source

pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !

Handle messages the object doesn’t recognize.

See Apple’s documentation for details.

Methods from Deref<Target = AnyObject>§

Source

pub fn class(&self) -> &'static AnyClass

Dynamically find the class of this object.

§Panics

May panic if the object is invalid (which may be the case for objects returned from unavailable init/new methods).

§Example

Check that an instance of NSObject has the precise class NSObject.

use objc2::ClassType;
use objc2::runtime::NSObject;

let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());
Source

pub unsafe fn get_ivar<T>(&self, name: &str) -> &T
where T: Encode,

👎Deprecated: this is difficult to use correctly, use Ivar::load instead.

Use Ivar::load instead.

§Safety

The object must have an instance variable with the given name, and it must be of type T.

See Ivar::load_ptr for details surrounding this.

Source

pub fn downcast_ref<T>(&self) -> Option<&T>
where T: DowncastTarget,

Attempt to downcast the object to a class of type T.

This is the reference-variant. Use Retained::downcast if you want to convert a retained object to another type.

§Mutable classes

Some classes have immutable and mutable variants, such as NSString and NSMutableString.

When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.

So using this method to convert a NSString to a NSMutableString, while not unsound, is generally frowned upon unless you created the string yourself, or the API explicitly documents the string to be mutable.

See Apple’s documentation on mutability and on isKindOfClass: for more details.

§Generic classes

Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.

You can, however, safely downcast to generic collections where all the type-parameters are AnyObject.

§Panics

This works internally by calling isKindOfClass:. That means that the object must have the instance method of that name, and an exception will be thrown (if CoreFoundation is linked) or the process will abort if that is not the case. In the vast majority of cases, you don’t need to worry about this, since both root objects NSObject and NSProxy implement this method.

§Examples

Cast an NSString back and forth from NSObject.

use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};

let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();

Try (and fail) to cast an NSObject to an NSString.

use objc2_foundation::{NSObject, NSString};

let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());

Try to cast to an array of strings.

use objc2_foundation::{NSArray, NSObject, NSString};

let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();

This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.

Downcast when processing each element instead.

use objc2_foundation::{NSArray, NSObject, NSString};

let arr = NSArray::from_retained_slice(&[NSObject::new()]);

for elem in arr {
    if let Some(data) = elem.downcast_ref::<NSString>() {
        // handle `data`
    }
}

Trait Implementations§

Source§

impl AsRef<AnyObject> for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn as_ref(&self) -> &AnyObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<MPSCNNLocalContrastNormalizationGradientNode> for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn as_ref(&self) -> &Self

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<MPSNNFilterNode> for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn as_ref(&self) -> &MPSNNFilterNode

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<MPSNNGradientFilterNode> for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn as_ref(&self) -> &MPSNNGradientFilterNode

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<NSObject> for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn as_ref(&self) -> &NSObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Borrow<AnyObject> for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<MPSNNFilterNode> for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn borrow(&self) -> &MPSNNFilterNode

Immutably borrows from an owned value. Read more
Source§

impl Borrow<MPSNNGradientFilterNode> for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn borrow(&self) -> &MPSNNGradientFilterNode

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSObject> for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn borrow(&self) -> &NSObject

Immutably borrows from an owned value. Read more
Source§

impl ClassType for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

const NAME: &'static str = "MPSCNNLocalContrastNormalizationGradientNode"

The name of the Objective-C class that this type represents. Read more
Source§

type Super = MPSNNGradientFilterNode

The superclass of this class. Read more
Source§

type ThreadKind = <<MPSCNNLocalContrastNormalizationGradientNode as ClassType>::Super as ClassType>::ThreadKind

Whether the type can be used from any thread, or from only the main thread. Read more
Source§

fn class() -> &'static AnyClass

Get a reference to the Objective-C class that this type represents. Read more
Source§

fn as_super(&self) -> &Self::Super

Get an immutable reference to the superclass.
Source§

impl Debug for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

type Target = MPSNNGradientFilterNode

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Hash for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Message for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn retain(&self) -> Retained<Self>
where Self: Sized,

Increment the reference count of the receiver. Read more
Source§

impl NSObjectProtocol for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn isEqual(&self, other: Option<&AnyObject>) -> bool
where Self: Sized + Message,

Check whether the object is equal to an arbitrary other object. Read more
Source§

fn hash(&self) -> usize
where Self: Sized + Message,

An integer that can be used as a table address in a hash table structure. Read more
Source§

fn isKindOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of the class, or one of its subclasses. Read more
Source§

fn is_kind_of<T>(&self) -> bool
where T: ClassType, Self: Sized + Message,

👎Deprecated: use isKindOfClass directly, or cast your objects with AnyObject::downcast_ref
Check if the object is an instance of the class type, or one of its subclasses. Read more
Source§

fn isMemberOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of a specific class, without checking subclasses. Read more
Source§

fn respondsToSelector(&self, aSelector: Sel) -> bool
where Self: Sized + Message,

Check whether the object implements or inherits a method with the given selector. Read more
Source§

fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
where Self: Sized + Message,

Check whether the object conforms to a given protocol. Read more
Source§

fn description(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object. Read more
Source§

fn debugDescription(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object to use when debugging. Read more
Source§

fn isProxy(&self) -> bool
where Self: Sized + Message,

Check whether the receiver is a subclass of the NSProxy root class instead of the usual NSObject. Read more
Source§

fn retainCount(&self) -> usize
where Self: Sized + Message,

The reference count of the object. Read more
Source§

impl PartialEq for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefEncode for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

const ENCODING_REF: Encoding = <MPSNNGradientFilterNode as ::objc2::RefEncode>::ENCODING_REF

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl DowncastTarget for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.
Source§

impl Eq for MPSCNNLocalContrastNormalizationGradientNode

Available on crate feature MPSNeuralNetwork only.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T> AnyThread for T
where T: ClassType<ThreadKind = dyn AnyThread + 'a> + ?Sized,

Source§

fn alloc() -> Allocated<Self>
where Self: Sized + ClassType,

Allocate a new instance of the class. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,