#[repr(C)]pub struct MLCOptimizerDescriptor { /* private fields */ }
MLCOptimizerDescriptor
only.Expand description
The MLCOptimizerDescriptor specifies an optimizer descriptor.
See also Appleโs documentation
Implementationsยง
Sourceยงimpl MLCOptimizerDescriptor
impl MLCOptimizerDescriptor
Sourcepub unsafe fn learningRate(&self) -> c_float
๐Deprecated
pub unsafe fn learningRate(&self) -> c_float
The learning rate
Sourcepub unsafe fn gradientRescale(&self) -> c_float
๐Deprecated
pub unsafe fn gradientRescale(&self) -> c_float
The rescale value applied to gradients during optimizer update
Sourcepub unsafe fn appliesGradientClipping(&self) -> bool
๐Deprecated
pub unsafe fn appliesGradientClipping(&self) -> bool
Whether gradient clipping should be applied or not.
The default is false
Sourcepub unsafe fn gradientClipMax(&self) -> c_float
๐Deprecated
pub unsafe fn gradientClipMax(&self) -> c_float
The maximum gradient value if gradient clipping is enabled before gradient is rescaled.
Sourcepub unsafe fn gradientClipMin(&self) -> c_float
๐Deprecated
pub unsafe fn gradientClipMin(&self) -> c_float
The minimum gradient value if gradient clipping is enabled before gradient is rescaled.
Sourcepub unsafe fn regularizationScale(&self) -> c_float
๐Deprecated
pub unsafe fn regularizationScale(&self) -> c_float
The regularization scale.
Sourcepub unsafe fn regularizationType(&self) -> MLCRegularizationType
๐DeprecatedAvailable on crate feature MLCTypes
only.
pub unsafe fn regularizationType(&self) -> MLCRegularizationType
MLCTypes
only.The regularization type.
Sourcepub unsafe fn gradientClippingType(&self) -> MLCGradientClippingType
Available on crate feature MLCTypes
only.
pub unsafe fn gradientClippingType(&self) -> MLCGradientClippingType
MLCTypes
only.The type of clipping applied to gradient
Sourcepub unsafe fn maximumClippingNorm(&self) -> c_float
pub unsafe fn maximumClippingNorm(&self) -> c_float
The maximum clipping value
Sourcepub unsafe fn customGlobalNorm(&self) -> c_float
pub unsafe fn customGlobalNorm(&self) -> c_float
Used only with MLCGradientClippingTypeByGlobalNorm. If non zero, this norm will be used in place of global norm.
Sourcepub unsafe fn descriptorWithLearningRate_gradientRescale_regularizationType_regularizationScale(
learning_rate: c_float,
gradient_rescale: c_float,
regularization_type: MLCRegularizationType,
regularization_scale: c_float,
) -> Retained<Self>
๐DeprecatedAvailable on crate feature MLCTypes
only.
pub unsafe fn descriptorWithLearningRate_gradientRescale_regularizationType_regularizationScale( learning_rate: c_float, gradient_rescale: c_float, regularization_type: MLCRegularizationType, regularization_scale: c_float, ) -> Retained<Self>
MLCTypes
only.Create a MLCOptimizerDescriptor object
Parameter learningRate
: The learning rate
Parameter gradientRescale
: The gradient rescale value
Parameter regularizationType
: The regularization type
Parameter regularizationScale
: The regularization scale
Returns: A new MLCOptimizerDescriptor object.
Sourcepub unsafe fn descriptorWithLearningRate_gradientRescale_appliesGradientClipping_gradientClipMax_gradientClipMin_regularizationType_regularizationScale(
learning_rate: c_float,
gradient_rescale: c_float,
applies_gradient_clipping: bool,
gradient_clip_max: c_float,
gradient_clip_min: c_float,
regularization_type: MLCRegularizationType,
regularization_scale: c_float,
) -> Retained<Self>
๐DeprecatedAvailable on crate feature MLCTypes
only.
pub unsafe fn descriptorWithLearningRate_gradientRescale_appliesGradientClipping_gradientClipMax_gradientClipMin_regularizationType_regularizationScale( learning_rate: c_float, gradient_rescale: c_float, applies_gradient_clipping: bool, gradient_clip_max: c_float, gradient_clip_min: c_float, regularization_type: MLCRegularizationType, regularization_scale: c_float, ) -> Retained<Self>
MLCTypes
only.Create a MLCOptimizerDescriptor object
Parameter learningRate
: The learning rate
Parameter gradientRescale
: The gradient rescale value
Parameter appliesGradientClipping
: Whether to apply gradient clipping
Parameter gradientClipMax
: The maximum gradient value to be used with gradient clipping
Parameter gradientClipMin
: The minimum gradient value to be used with gradient clipping
Parameter regularizationType
: The regularization type
Parameter regularizationScale
: The regularization scale
Returns: A new MLCOptimizerDescriptor object.
Sourcepub unsafe fn descriptorWithLearningRate_gradientRescale_appliesGradientClipping_gradientClippingType_gradientClipMax_gradientClipMin_maximumClippingNorm_customGlobalNorm_regularizationType_regularizationScale(
learning_rate: c_float,
gradient_rescale: c_float,
applies_gradient_clipping: bool,
gradient_clipping_type: MLCGradientClippingType,
gradient_clip_max: c_float,
gradient_clip_min: c_float,
maximum_clipping_norm: c_float,
custom_global_norm: c_float,
regularization_type: MLCRegularizationType,
regularization_scale: c_float,
) -> Retained<Self>
Available on crate feature MLCTypes
only.
pub unsafe fn descriptorWithLearningRate_gradientRescale_appliesGradientClipping_gradientClippingType_gradientClipMax_gradientClipMin_maximumClippingNorm_customGlobalNorm_regularizationType_regularizationScale( learning_rate: c_float, gradient_rescale: c_float, applies_gradient_clipping: bool, gradient_clipping_type: MLCGradientClippingType, gradient_clip_max: c_float, gradient_clip_min: c_float, maximum_clipping_norm: c_float, custom_global_norm: c_float, regularization_type: MLCRegularizationType, regularization_scale: c_float, ) -> Retained<Self>
MLCTypes
only.Create an MLCOptimizerDescriptor object
Parameter learningRate
: The learning rate
Parameter gradientRescale
: The gradient rescale value
Parameter appliesGradientClipping
: Whether to apply gradient clipping
Parameter gradientClippingType
: The type of clipping applied to gradients
Parameter gradientClipMax
: The maximum gradient value to be used with gradient clipping
Parameter gradientClipMin
: The minimum gradient value to be used with gradient clipping
Parameter maximumClippingNorm
: The maximum norm to be used with gradient clipping
Parameter customGlobalNorm
: If non-zero, the norm to be used instead of calculating the global norm
Parameter regularizationType
: The regularization type
Parameter regularizationScale
: The regularization scale
Returns: A new MLCOptimizerDescriptor object.
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 MLCOptimizerDescriptor
impl AsRef<AnyObject> for MLCOptimizerDescriptor
Sourceยงimpl AsRef<NSObject> for MLCOptimizerDescriptor
impl AsRef<NSObject> for MLCOptimizerDescriptor
Sourceยงimpl Borrow<AnyObject> for MLCOptimizerDescriptor
impl Borrow<AnyObject> for MLCOptimizerDescriptor
Sourceยงimpl Borrow<NSObject> for MLCOptimizerDescriptor
impl Borrow<NSObject> for MLCOptimizerDescriptor
Sourceยงimpl ClassType for MLCOptimizerDescriptor
impl ClassType for MLCOptimizerDescriptor
Sourceยงconst NAME: &'static str = "MLCOptimizerDescriptor"
const NAME: &'static str = "MLCOptimizerDescriptor"
Sourceยงtype ThreadKind = <<MLCOptimizerDescriptor as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<MLCOptimizerDescriptor as ClassType>::Super as ClassType>::ThreadKind
Sourceยงimpl CopyingHelper for MLCOptimizerDescriptor
impl CopyingHelper for MLCOptimizerDescriptor
Sourceยงtype Result = MLCOptimizerDescriptor
type Result = MLCOptimizerDescriptor
Self
if the type has no
immutable counterpart. Read moreSourceยงimpl Debug for MLCOptimizerDescriptor
impl Debug for MLCOptimizerDescriptor
Sourceยงimpl Deref for MLCOptimizerDescriptor
impl Deref for MLCOptimizerDescriptor
Sourceยงimpl Hash for MLCOptimizerDescriptor
impl Hash for MLCOptimizerDescriptor
Sourceยงimpl Message for MLCOptimizerDescriptor
impl Message for MLCOptimizerDescriptor
Sourceยงimpl NSCopying for MLCOptimizerDescriptor
impl NSCopying for MLCOptimizerDescriptor
Sourceยงimpl NSObjectProtocol for MLCOptimizerDescriptor
impl NSObjectProtocol for MLCOptimizerDescriptor
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_ref