pub struct ImportanceSampler { /* private fields */ }Expand description
Importance sampler for adaptive sample selection.
This sampler selects samples based on importance scores, which can represent various metrics like loss values, prediction confidence, or gradient norms. High-importance samples are selected more frequently, making this ideal for active learning and hard negative mining.
§Applications
- Active Learning: Sample uncertain or informative examples
- Hard Negative Mining: Focus on difficult examples
- Curriculum Learning: Gradually increase sample difficulty
- Online Learning: Adapt to changing data distributions
Implementations§
Source§impl ImportanceSampler
impl ImportanceSampler
Sourcepub fn new(importance_scores: Vec<f32>) -> Self
pub fn new(importance_scores: Vec<f32>) -> Self
Create a new importance sampler.
§Arguments
importance_scores- Vector of importance values for each sample
§Examples
use torsh_data::sampler::{Sampler, ImportanceSampler};
// Higher scores = more important
let scores = vec![0.1, 0.8, 0.3, 0.9, 0.2];
let sampler = ImportanceSampler::new(scores);
// Samples 1 and 3 will be selected more frequentlySourcepub fn with_temperature(self, temperature: f32) -> Self
pub fn with_temperature(self, temperature: f32) -> Self
Set the temperature for importance sampling.
Higher temperature makes sampling more uniform, lower temperature makes it more focused on high-importance samples.
§Arguments
temperature- Temperature parameter (> 0.0)
§Examples
use torsh_data::sampler::ImportanceSampler;
let scores = vec![0.1, 0.8, 0.3];
let sampler = ImportanceSampler::new(scores)
.with_temperature(2.0); // More uniform samplingSourcepub fn with_adaptive(self, adaptive: bool, update_rate: f32) -> Self
pub fn with_adaptive(self, adaptive: bool, update_rate: f32) -> Self
Enable adaptive importance updates.
When enabled, importance scores can be updated based on recent sampling feedback to adapt to changing data characteristics.
§Arguments
adaptive- Whether to enable adaptive updatesupdate_rate- Rate of adaptation (0.0 to 1.0)
Sourcepub fn with_generator(self, seed: u64) -> Self
pub fn with_generator(self, seed: u64) -> Self
Set random generator seed.
Sourcepub fn importance_scores(&self) -> &[f32]
pub fn importance_scores(&self) -> &[f32]
Get the importance scores.
Sourcepub fn temperature(&self) -> f32
pub fn temperature(&self) -> f32
Get the temperature parameter.
Sourcepub fn is_adaptive(&self) -> bool
pub fn is_adaptive(&self) -> bool
Check if adaptive updates are enabled.
Sourcepub fn update_importance_scores(&mut self, new_scores: Vec<f32>)
pub fn update_importance_scores(&mut self, new_scores: Vec<f32>)
Update importance scores (for adaptive sampling).
§Arguments
new_scores- Updated importance scores
§Examples
use torsh_data::sampler::ImportanceSampler;
let mut sampler = ImportanceSampler::new(vec![0.1, 0.5, 0.3])
.with_adaptive(true, 0.1);
// Update based on new loss values
let new_losses = vec![0.2, 0.8, 0.1];
sampler.update_importance_scores(new_losses);Trait Implementations§
Source§impl Clone for ImportanceSampler
impl Clone for ImportanceSampler
Source§fn clone(&self) -> ImportanceSampler
fn clone(&self) -> ImportanceSampler
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ImportanceSampler
impl Debug for ImportanceSampler
Source§impl Sampler for ImportanceSampler
impl Sampler for ImportanceSampler
Source§type Iter = SamplerIterator
type Iter = SamplerIterator
Source§fn into_batch_sampler(
self,
batch_size: usize,
drop_last: bool,
) -> BatchingSampler<Self>where
Self: Sized,
fn into_batch_sampler(
self,
batch_size: usize,
drop_last: bool,
) -> BatchingSampler<Self>where
Self: Sized,
Source§fn into_distributed(
self,
num_replicas: usize,
rank: usize,
) -> DistributedWrapper<Self>where
Self: Sized,
fn into_distributed(
self,
num_replicas: usize,
rank: usize,
) -> DistributedWrapper<Self>where
Self: Sized,
Auto Trait Implementations§
impl Freeze for ImportanceSampler
impl RefUnwindSafe for ImportanceSampler
impl Send for ImportanceSampler
impl Sync for ImportanceSampler
impl Unpin for ImportanceSampler
impl UnsafeUnpin for ImportanceSampler
impl UnwindSafe for ImportanceSampler
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,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.