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| > d
where 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: f32
The bound where the Huber loss function changes from quadratic to linear behaviour.
lin_bias: f32
Precomputed value for the linear bias.
Implementations§
§
impl HuberLoss
impl HuberLoss
pub fn forward<const D: usize,
B>(
&self,
predictions: Tensor<B, D>,
targets: Tensor<B, D>,
reduction: Reduction,
) -> Tensor<B, 1>where
B: Backend,
pub fn forward<const D: usize,
B>(
&self,
predictions: Tensor<B, D>,
targets: Tensor<B, D>,
reduction: Reduction,
) -> Tensor<B, 1>where
B: Backend,
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]
Trait Implementations§
§
impl<B> AutodiffModule<B> for HuberLoss
where
B: AutodiffBackend,
impl<B> AutodiffModule<B> for HuberLoss
where
B: AutodiffBackend,
§
type InnerModule = HuberLoss
type InnerModule = HuberLoss
§
fn valid(&self) -> <HuberLoss as AutodiffModule<B>>::InnerModule
fn valid(&self) -> <HuberLoss as AutodiffModule<B>>::InnerModule
§
impl<B> Module<B> for HuberLoss
where
B: Backend,
impl<B> Module<B> for HuberLoss
where
B: Backend,
§
type Record = ConstantRecord
type Record = ConstantRecord
§
fn visit<V>(&self, _visitor: &mut
V)where
V: ModuleVisitor<B>,
fn visit<V>(&self, _visitor: &mut
V)where
V: ModuleVisitor<B>,
§
fn map<M>(self, _mapper: &mut
M) -> HuberLoss
where
M: ModuleMapper<B>,
fn map<M>(self, _mapper: &mut
M) -> HuberLoss
where
M: ModuleMapper<B>,
§
fn load_record(self, _record: <HuberLoss as Module<B>>::Record) -> HuberLoss
fn load_record(self, _record: <HuberLoss as Module<B>>::Record) -> HuberLoss
§
fn into_record(self) -> <HuberLoss as Module<B>>::Record
fn into_record(self) -> <HuberLoss as Module<B>>::Record
§
fn to_device(self, _: &<B as Backend>::Device) -> HuberLoss
fn to_device(self, _: &<B as Backend>::Device) -> HuberLoss
§
fn fork(self, _: &<B as Backend>::Device) -> HuberLoss
fn fork(self, _: &<B as Backend>::Device) -> HuberLoss
§
fn collect_devices(
&self,
devices: Vec<<B as Backend>::Device>,
) -> Vec<<B as Backend>::Device>
fn collect_devices( &self, devices: Vec<<B as Backend>::Device>, ) -> Vec<<B as Backend>::Device>
§
fn devices(&self) -> Vec<<B as Backend>::Device>
fn devices(&self) -> Vec<<B as Backend>::Device>
§
fn num_params(&self) -> usize
fn num_params(&self) -> usize
§
fn save_file<FR, PB>(
self,
file_path: PB,
recorder: &FR,
) -> Result<(),
RecorderError>
fn save_file<FR, PB>( self, file_path: PB, recorder: &FR, ) -> Result<(), RecorderError>
§
fn load_file<FR, PB>(
self,
file_path: PB,
recorder: &FR,
device: &<B as Backend>::Device,
) -> Result<Self, RecorderError>
fn load_file<FR, PB>( self, file_path: PB, recorder: &FR, device: &<B as Backend>::Device, ) -> Result<Self, RecorderError>
§
fn quantize_weights(self, quantizer: &mut Quantizer) -> Self
fn quantize_weights(self, quantizer: &mut Quantizer) -> Self
§
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 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
Source§
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§
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
more
Source§
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> 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
§
impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§
fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string
,
but without panic on OOM.