pub struct MPSCNNLocalContrastNormalizationGradientNode { /* private fields */ }MPSNNGraphNodes only.Expand description
Implementations§
Source§impl MPSCNNLocalContrastNormalizationGradientNode
impl MPSCNNLocalContrastNormalizationGradientNode
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>
MPSNeuralNetwork only.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>
MPSNeuralNetwork only.Sourcepub unsafe fn alpha(&self) -> c_float
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn alpha(&self) -> c_float
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.
Sourcepub unsafe fn setAlpha(&self, alpha: c_float)
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn setAlpha(&self, alpha: c_float)
MPSNeuralNetwork only.Setter for alpha.
Sourcepub unsafe fn beta(&self) -> c_float
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn beta(&self) -> c_float
MPSNeuralNetwork only.The value of beta. Default is 0.5
Sourcepub unsafe fn setBeta(&self, beta: c_float)
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn setBeta(&self, beta: c_float)
MPSNeuralNetwork only.Setter for beta.
Sourcepub unsafe fn delta(&self) -> c_float
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn delta(&self) -> c_float
MPSNeuralNetwork only.The value of delta. Default is 1/1024
Sourcepub unsafe fn setDelta(&self, delta: c_float)
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn setDelta(&self, delta: c_float)
MPSNeuralNetwork only.Setter for delta.
Sourcepub unsafe fn p0(&self) -> c_float
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn p0(&self) -> c_float
MPSNeuralNetwork only.The value of p0. Default is 1.0
Sourcepub unsafe fn setP0(&self, p0: c_float)
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn setP0(&self, p0: c_float)
MPSNeuralNetwork only.Setter for p0.
Sourcepub unsafe fn pm(&self) -> c_float
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn pm(&self) -> c_float
MPSNeuralNetwork only.The value of pm. Default is 0.0
Sourcepub unsafe fn setPm(&self, pm: c_float)
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn setPm(&self, pm: c_float)
MPSNeuralNetwork only.Setter for pm.
Sourcepub unsafe fn ps(&self) -> c_float
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn ps(&self) -> c_float
MPSNeuralNetwork only.The value of ps. Default is 1.0
Sourcepub unsafe fn setPs(&self, ps: c_float)
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn setPs(&self, ps: c_float)
MPSNeuralNetwork only.Setter for ps.
pub unsafe fn kernelWidth(&self) -> NSUInteger
MPSNeuralNetwork only.pub unsafe fn kernelHeight(&self) -> NSUInteger
MPSNeuralNetwork only.Source§impl MPSCNNLocalContrastNormalizationGradientNode
Methods declared on superclass MPSNNFilterNode.
impl MPSCNNLocalContrastNormalizationGradientNode
Methods declared on superclass MPSNNFilterNode.
Methods from Deref<Target = MPSNNGradientFilterNode>§
pub unsafe fn gradientFilterWithSources( &self, source_gradient: &NSArray<MPSNNImageNode>, ) -> Retained<MPSNNGradientFilterNode>
MPSNeuralNetwork only.pub unsafe fn gradientFiltersWithSources( &self, source_gradient: &NSArray<MPSNNImageNode>, ) -> Retained<NSArray<MPSNNGradientFilterNode>>
MPSNeuralNetwork only.pub unsafe fn gradientFilterWithSource( &self, source_gradient: &MPSNNImageNode, ) -> Retained<MPSNNGradientFilterNode>
MPSNeuralNetwork only.pub unsafe fn gradientFiltersWithSource( &self, source_gradient: &MPSNNImageNode, ) -> Retained<NSArray<MPSNNGradientFilterNode>>
MPSNeuralNetwork only.Methods from Deref<Target = MPSNNFilterNode>§
Sourcepub unsafe fn resultImage(&self) -> Retained<MPSNNImageNode>
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn resultImage(&self) -> Retained<MPSNNImageNode>
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.
Sourcepub unsafe fn resultState(&self) -> Option<Retained<MPSNNStateNode>>
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn resultState(&self) -> Option<Retained<MPSNNStateNode>>
MPSNeuralNetwork only.convenience method for resultStates[0]
If resultStates is nil, returns nil
Sourcepub unsafe fn resultStates(&self) -> Option<Retained<NSArray<MPSNNStateNode>>>
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn resultStates(&self) -> Option<Retained<NSArray<MPSNNStateNode>>>
MPSNeuralNetwork only.Get the node representing the state result of the filter
If more than one, see description of subclass for ordering.
Sourcepub unsafe fn paddingPolicy(&self) -> Retained<ProtocolObject<dyn MPSNNPadding>>
Available on crate features MPSNeuralNetwork and MPSNeuralNetworkTypes only.
pub unsafe fn paddingPolicy(&self) -> Retained<ProtocolObject<dyn MPSNNPadding>>
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.
Sourcepub unsafe fn setPaddingPolicy(
&self,
padding_policy: &ProtocolObject<dyn MPSNNPadding>,
)
Available on crate features MPSNeuralNetwork and MPSNeuralNetworkTypes only.
pub unsafe fn setPaddingPolicy( &self, padding_policy: &ProtocolObject<dyn MPSNNPadding>, )
MPSNeuralNetwork and MPSNeuralNetworkTypes only.Setter for paddingPolicy.
Sourcepub unsafe fn label(&self) -> Option<Retained<NSString>>
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn label(&self) -> Option<Retained<NSString>>
MPSNeuralNetwork only.A string to help identify this object.
Sourcepub unsafe fn setLabel(&self, label: Option<&NSString>)
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn setLabel(&self, label: Option<&NSString>)
MPSNeuralNetwork only.Sourcepub unsafe fn gradientFilterWithSource(
&self,
gradient_image: &MPSNNImageNode,
) -> Retained<MPSNNGradientFilterNode>
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn gradientFilterWithSource( &self, gradient_image: &MPSNNImageNode, ) -> Retained<MPSNNGradientFilterNode>
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
Sourcepub unsafe fn gradientFilterWithSources(
&self,
gradient_images: &NSArray<MPSNNImageNode>,
) -> Retained<MPSNNGradientFilterNode>
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn gradientFilterWithSources( &self, gradient_images: &NSArray<MPSNNImageNode>, ) -> Retained<MPSNNGradientFilterNode>
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
Sourcepub unsafe fn gradientFiltersWithSources(
&self,
gradient_images: &NSArray<MPSNNImageNode>,
) -> Retained<NSArray<MPSNNGradientFilterNode>>
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn gradientFiltersWithSources( &self, gradient_images: &NSArray<MPSNNImageNode>, ) -> Retained<NSArray<MPSNNGradientFilterNode>>
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.
Sourcepub unsafe fn gradientFiltersWithSource(
&self,
gradient_image: &MPSNNImageNode,
) -> Retained<NSArray<MPSNNGradientFilterNode>>
Available on crate feature MPSNeuralNetwork only.
pub unsafe fn gradientFiltersWithSource( &self, gradient_image: &MPSNNImageNode, ) -> Retained<NSArray<MPSNNGradientFilterNode>>
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.
Sourcepub unsafe fn trainingGraphWithSourceGradient_nodeHandler(
&self,
gradient_image: Option<&MPSNNImageNode>,
node_handler: MPSGradientNodeBlock,
) -> Option<Retained<NSArray<MPSNNFilterNode>>>
Available on crate features MPSNeuralNetwork and block2 only.
pub unsafe fn trainingGraphWithSourceGradient_nodeHandler( &self, gradient_image: Option<&MPSNNImageNode>, node_handler: MPSGradientNodeBlock, ) -> Option<Retained<NSArray<MPSNNFilterNode>>>
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>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
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());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
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.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
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.
impl AsRef<AnyObject> for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§impl AsRef<MPSCNNLocalContrastNormalizationGradientNode> for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl AsRef<MPSCNNLocalContrastNormalizationGradientNode> for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§impl AsRef<MPSNNFilterNode> for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl AsRef<MPSNNFilterNode> for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§fn as_ref(&self) -> &MPSNNFilterNode
fn as_ref(&self) -> &MPSNNFilterNode
Source§impl AsRef<MPSNNGradientFilterNode> for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl AsRef<MPSNNGradientFilterNode> for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§fn as_ref(&self) -> &MPSNNGradientFilterNode
fn as_ref(&self) -> &MPSNNGradientFilterNode
Source§impl AsRef<NSObject> for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl AsRef<NSObject> for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§impl Borrow<AnyObject> for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl Borrow<AnyObject> for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§impl Borrow<MPSNNFilterNode> for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl Borrow<MPSNNFilterNode> for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§fn borrow(&self) -> &MPSNNFilterNode
fn borrow(&self) -> &MPSNNFilterNode
Source§impl Borrow<MPSNNGradientFilterNode> for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl Borrow<MPSNNGradientFilterNode> for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§fn borrow(&self) -> &MPSNNGradientFilterNode
fn borrow(&self) -> &MPSNNGradientFilterNode
Source§impl Borrow<NSObject> for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl Borrow<NSObject> for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§impl ClassType for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl ClassType for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§const NAME: &'static str = "MPSCNNLocalContrastNormalizationGradientNode"
const NAME: &'static str = "MPSCNNLocalContrastNormalizationGradientNode"
Source§type Super = MPSNNGradientFilterNode
type Super = MPSNNGradientFilterNode
Source§type ThreadKind = <<MPSCNNLocalContrastNormalizationGradientNode as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<MPSCNNLocalContrastNormalizationGradientNode as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl Debug for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§impl Deref for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl Deref for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§impl Hash for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl Hash for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§impl Message for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl Message for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§impl NSObjectProtocol for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl NSObjectProtocol for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_refSource§fn isMemberOfClass(&self, cls: &AnyClass) -> bool
fn isMemberOfClass(&self, cls: &AnyClass) -> bool
Source§fn respondsToSelector(&self, aSelector: Sel) -> bool
fn respondsToSelector(&self, aSelector: Sel) -> bool
Source§fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
Source§fn debugDescription(&self) -> Retained<NSObject>
fn debugDescription(&self) -> Retained<NSObject>
Source§impl PartialEq for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl PartialEq for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§impl RefEncode for MPSCNNLocalContrastNormalizationGradientNode
Available on crate feature MPSNeuralNetwork only.
impl RefEncode for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.Source§const ENCODING_REF: Encoding = <MPSNNGradientFilterNode as ::objc2::RefEncode>::ENCODING_REF
const ENCODING_REF: Encoding = <MPSNNGradientFilterNode as ::objc2::RefEncode>::ENCODING_REF
impl DowncastTarget for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.impl Eq for MPSCNNLocalContrastNormalizationGradientNode
MPSNeuralNetwork only.