Struct HuberLoss
pub struct HuberLoss {
pub delta: f32,
pub lin_bias: f32,
}Expand description
Calculate the Huber loss between the inputs and the target.
The loss for each element of the residuals r = targets - predictions is given by
L(r) = 0.5 * r^2 if |r| <= d
L(r) = 0.5 * d^2 + d * (|r| - d) if |r| > dwhere d is the configured delta. In particular, this is equal to the
L2 Loss for residuals with magnitude smaller than delta,
but behaves linearly instead of quadratically for large residuals.
This loss function is less sensitive to outliers than the mean squared error loss.
See also: https://en.wikipedia.org/wiki/Huber_loss
Fields§
§delta: f32The bound where the Huber loss function changes from quadratic to linear behaviour.
lin_bias: f32Precomputed value for the linear bias.
Implementations§
§impl HuberLoss
impl HuberLoss
pub fn forward<const D: usize>(
&self,
predictions: Tensor<D>,
targets: Tensor<D>,
reduction: Reduction,
) -> Tensor<1>
pub fn forward<const D: usize>( &self, predictions: Tensor<D>, targets: Tensor<D>, reduction: Reduction, ) -> Tensor<1>
Compute the loss element-wise for the predictions and targets, then reduce to a single loss value.
Reduction::Auto behaves as Reduction::Mean.
§Shapes
- predictions: […dims]
- targets: […dims]
- output: [1]
pub fn forward_no_reduction<const D: usize>(
&self,
predictions: Tensor<D>,
targets: Tensor<D>,
) -> Tensor<D>
pub fn forward_no_reduction<const D: usize>( &self, predictions: Tensor<D>, targets: Tensor<D>, ) -> Tensor<D>
Compute the loss element-wise for the predictions and targets.
§Shapes
- predictions: […dims]
- targets: […dims]
- output: […dims]
pub fn forward_residuals<const D: usize>(
&self,
residuals: Tensor<D>,
) -> Tensor<D>
pub fn forward_residuals<const D: usize>( &self, residuals: Tensor<D>, ) -> Tensor<D>
Trait Implementations§
§impl Module for HuberLoss
impl Module for HuberLoss
§fn visit<V>(&self, _visitor: &mut V)where
V: ModuleVisitor,
fn visit<V>(&self, _visitor: &mut V)where
V: ModuleVisitor,
§fn map<M>(self, _mapper: &mut M) -> HuberLosswhere
M: ModuleMapper,
fn map<M>(self, _mapper: &mut M) -> HuberLosswhere
M: ModuleMapper,
§fn to_device(self, _: &Device) -> HuberLoss
fn to_device(self, _: &Device) -> HuberLoss
§fn fork(self, _: &Device) -> HuberLoss
fn fork(self, _: &Device) -> HuberLoss
§fn collect_devices(&self, devices: Vec<Device>) -> Vec<Device>
fn collect_devices(&self, devices: Vec<Device>) -> Vec<Device>
§fn materialize(self) -> HuberLoss
fn materialize(self) -> HuberLoss
§fn valid(&self) -> HuberLoss
fn valid(&self) -> HuberLoss
§fn train(self) -> HuberLoss
fn train(self) -> HuberLoss
§fn devices(&self) -> Vec<Device>
fn devices(&self) -> Vec<Device>
§fn set_require_grad(self, require_grad: bool) -> Self
fn set_require_grad(self, require_grad: bool) -> Self
§fn set_require_grad_group(self, group: ParamGroup, require_grad: bool) -> Self
fn set_require_grad_group(self, group: ParamGroup, require_grad: bool) -> Self
§fn no_grad(self) -> Self
fn no_grad(self) -> Self
§fn freeze_group(self, group: ParamGroup) -> Self
fn freeze_group(self, group: ParamGroup) -> Self
§fn unfreeze_group(self, group: ParamGroup) -> Self
fn unfreeze_group(self, group: ParamGroup) -> Self
§fn num_params(&self) -> usize
fn num_params(&self) -> usize
§fn quantize_weights(self, quantizer: &mut Quantizer) -> Self
fn quantize_weights(self, quantizer: &mut Quantizer) -> Self
§fn quantize_weights_group(
self,
quantizer: &mut Quantizer,
group: ParamGroup,
) -> Self
fn quantize_weights_group( self, quantizer: &mut Quantizer, group: ParamGroup, ) -> Self
§fn apply_reparameterization<R>(self, reparameterizer: R) -> Selfwhere
Self: Sized,
R: Reparameterizer,
fn apply_reparameterization<R>(self, reparameterizer: R) -> Selfwhere
Self: Sized,
R: Reparameterizer,
Reparameterizer. Read more§fn apply_lora(self, lora: Lora) -> Selfwhere
Self: Sized,
fn apply_lora(self, lora: Lora) -> Selfwhere
Self: Sized,
§fn apply_qlora(self, qlora: QLora) -> Selfwhere
Self: Sized,
fn apply_qlora(self, qlora: QLora) -> Selfwhere
Self: Sized,
§fn into_record(self) -> ModuleRecordwhere
Self: Sized,
fn into_record(self) -> ModuleRecordwhere
Self: Sized,
ModuleRecord. Read more§fn into_record_group(self, group: ParamGroup) -> ModuleRecordwhere
Self: Sized,
fn into_record_group(self, group: ParamGroup) -> ModuleRecordwhere
Self: Sized,
§fn try_load_record(self, record: ModuleRecord) -> Result<Self, RecordError>where
Self: Sized,
fn try_load_record(self, record: ModuleRecord) -> Result<Self, RecordError>where
Self: Sized,
ModuleRecord to this module, returning the loaded
module. Read more§fn load_record(self, record: ModuleRecord) -> Selfwhere
Self: Sized,
fn load_record(self, record: ModuleRecord) -> Selfwhere
Self: Sized,
ModuleRecord to this module, consuming and returning
it. Read more§fn save_file<P>(self, path: P) -> Result<(), RecordError>
fn save_file<P>(self, path: P) -> Result<(), RecordError>
§fn load_file<P>(self, path: P) -> Self
fn load_file<P>(self, path: P) -> Self
§fn try_load_file<P>(self, path: P) -> Result<Self, RecordError>
fn try_load_file<P>(self, path: P) -> Result<Self, RecordError>
§impl ModuleDisplay for HuberLoss
impl ModuleDisplay for HuberLoss
§fn custom_settings(&self) -> Option<DisplaySettings>
fn custom_settings(&self) -> Option<DisplaySettings>
§fn custom_content(&self, content: Content) -> Option<Content>
fn custom_content(&self, content: Content) -> Option<Content>
§fn format(&self, passed_settings: DisplaySettings) -> String
fn format(&self, passed_settings: DisplaySettings) -> String
Auto Trait Implementations§
impl Freeze for HuberLoss
impl RefUnwindSafe for HuberLoss
impl Send for HuberLoss
impl Sync for HuberLoss
impl Unpin for HuberLoss
impl UnsafeUnpin for HuberLoss
impl UnwindSafe for HuberLoss
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<K, Q> Comparable<Q> for K
impl<K, Q> Comparable<Q> for K
§impl<K, Q> Equivalent<Q> for K
impl<K, Q> Equivalent<Q> for K
§fn equivalent(&self, key: &Q) -> bool
fn equivalent(&self, key: &Q) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string()] Read more§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString]. Read more