Struct KLDivLoss
pub struct KLDivLoss {
pub log_target: bool,
}Expand description
Kullback-Leibler Divergence Loss
KL Divergence shows the difference between two probability distributions by measuring information loss
KLDivLoss =
y_{true} \cdot (\log{y_{true}} - \log{y_{pred}})
```
By default, the loss expects the input in the log-space.
The targets may also be provided in the log-space if `log_target` is true.
See
- [Kullback–Leibler divergence](https://en.wikipedia.org/wiki/Kullback-Leibler_divergence)Fields§
§log_target: boolSpecifies whether target is the log space. Default: False.
Implementations§
§impl KLDivLoss
impl KLDivLoss
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 criterion on the input tensor.
Reduction::Auto behaves as Reduction::BatchMean,Reduction::Mean dose not align with the math definition.
§Shapes
- predictions: [batch_size,num_targets]
- targets: [batch_size,num_targets]
- output: [1]
Trait Implementations§
§impl<B> AutodiffModule<B> for KLDivLosswhere
B: AutodiffBackend,
impl<B> AutodiffModule<B> for KLDivLosswhere
B: AutodiffBackend,
§type InnerModule = KLDivLoss
type InnerModule = KLDivLoss
Inner module without auto-differentiation.
§fn valid(&self) -> <KLDivLoss as AutodiffModule<B>>::InnerModule
fn valid(&self) -> <KLDivLoss as AutodiffModule<B>>::InnerModule
Returns the same module, but on the inner backend without auto-differentiation.
§fn from_inner(
module: <KLDivLoss as AutodiffModule<B>>::InnerModule,
) -> KLDivLoss
fn from_inner( module: <KLDivLoss as AutodiffModule<B>>::InnerModule, ) -> KLDivLoss
Wraps an inner module back into an auto-diff module.
§impl<B> Module<B> for KLDivLosswhere
B: Backend,
impl<B> Module<B> for KLDivLosswhere
B: Backend,
§type Record = EmptyRecord
type Record = EmptyRecord
Type to save and load the module.
§fn visit<V>(&self, _visitor: &mut V)where
V: ModuleVisitor<B>,
fn visit<V>(&self, _visitor: &mut V)where
V: ModuleVisitor<B>,
Visit each tensor parameter in the module with a visitor.
§fn map<M>(self, _mapper: &mut M) -> KLDivLosswhere
M: ModuleMapper<B>,
fn map<M>(self, _mapper: &mut M) -> KLDivLosswhere
M: ModuleMapper<B>,
Map each tensor parameter in the module with a mapper.
§fn load_record(self, _record: <KLDivLoss as Module<B>>::Record) -> KLDivLoss
fn load_record(self, _record: <KLDivLoss as Module<B>>::Record) -> KLDivLoss
Load the module state from a record.
§fn into_record(self) -> <KLDivLoss as Module<B>>::Record
fn into_record(self) -> <KLDivLoss as Module<B>>::Record
Convert the module into a record containing the state.
§fn to_device(self, _: &<B as BackendTypes>::Device) -> KLDivLoss
fn to_device(self, _: &<B as BackendTypes>::Device) -> KLDivLoss
Move the module and all of its sub-modules to the given device. Read more
§fn fork(self, _: &<B as BackendTypes>::Device) -> KLDivLoss
fn fork(self, _: &<B as BackendTypes>::Device) -> KLDivLoss
Fork the module and all of its sub-modules to the given device. Read more
§fn collect_devices(
&self,
devices: Vec<<B as BackendTypes>::Device>,
) -> Vec<<B as BackendTypes>::Device>
fn collect_devices( &self, devices: Vec<<B as BackendTypes>::Device>, ) -> Vec<<B as BackendTypes>::Device>
Return all the devices found in the underneath module tree added to the given vector
without duplicates.
§fn devices(&self) -> Vec<<B as BackendTypes>::Device>
fn devices(&self) -> Vec<<B as BackendTypes>::Device>
Return all the devices found in the underneath module tree without duplicates.
§fn train<AB>(self) -> Self::TrainModulewhere
AB: AutodiffBackend<InnerBackend = B>,
Self: HasAutodiffModule<AB>,
fn train<AB>(self) -> Self::TrainModulewhere
AB: AutodiffBackend<InnerBackend = B>,
Self: HasAutodiffModule<AB>,
Move the module and all of its sub-modules to the autodiff backend. Read more
§fn num_params(&self) -> usize
fn num_params(&self) -> usize
Get the number of parameters the module has, including all of its sub-modules.
§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>
Save the module to a file using the provided file recorder. Read more
§fn load_file<FR, PB>(
self,
file_path: PB,
recorder: &FR,
device: &<B as BackendTypes>::Device,
) -> Result<Self, RecorderError>
fn load_file<FR, PB>( self, file_path: PB, recorder: &FR, device: &<B as BackendTypes>::Device, ) -> Result<Self, RecorderError>
Load the module from a file using the provided file recorder. Read more
§fn quantize_weights(self, quantizer: &mut Quantizer) -> Self
fn quantize_weights(self, quantizer: &mut Quantizer) -> Self
Quantize the weights of the module.
§impl ModuleDisplay for KLDivLoss
impl ModuleDisplay for KLDivLoss
§fn custom_settings(&self) -> Option<DisplaySettings>
fn custom_settings(&self) -> Option<DisplaySettings>
Custom display settings for the module. Read more
§fn custom_content(&self, content: Content) -> Option<Content>
fn custom_content(&self, content: Content) -> Option<Content>
Custom attributes for the module. Read more
§fn format(&self, passed_settings: DisplaySettings) -> String
fn format(&self, passed_settings: DisplaySettings) -> String
Formats the module with provided display settings. Read more
Auto Trait Implementations§
impl Freeze for KLDivLoss
impl RefUnwindSafe for KLDivLoss
impl Send for KLDivLoss
impl Sync for KLDivLoss
impl Unpin for KLDivLoss
impl UnwindSafe for KLDivLoss
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
Mutably borrows from an owned value. Read more
§impl<C> CloneExpand for Cwhere
C: Clone,
impl<C> CloneExpand for Cwhere
C: Clone,
fn __expand_clone_method(&self, _scope: &mut Scope) -> C
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>
Converts
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>
Converts
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> 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>
Fallible version of [
ToCompactString::to_compact_string()] Read more§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
Converts the given value to a [
CompactString]. Read more