pub struct SimCLR {
pub projection_dim: usize,
pub embedding_dim: usize,
pub temperature: f64,
pub augmentation_strength: f64,
pub batch_size: usize,
pub max_epochs: usize,
pub learning_rate: f64,
pub momentum: f64,
pub labeled_weight: f64,
pub random_state: Option<u64>,
}Expand description
SimCLR (A Simple Framework for Contrastive Learning) adaptation for semi-supervised learning
This implements SimCLR’s contrastive learning approach adapted for semi-supervised scenarios. It learns representations by maximizing agreement between differently augmented views of the same data.
§Parameters
projection_dim- Dimensionality of projection head (typically smaller than embedding_dim)embedding_dim- Dimensionality of learned embeddingstemperature- Temperature parameter for contrastive lossaugmentation_strength- Strength of data augmentationbatch_size- Batch size for trainingmax_epochs- Maximum number of training epochslearning_rate- Learning rate for optimizationmomentum- Momentum for exponential moving averageslabeled_weight- Weight for supervised contrastive loss componentrandom_state- Random seed for reproducibility
Fields§
§projection_dim: usizeprojection_dim
embedding_dim: usizeembedding_dim
temperature: f64temperature
augmentation_strength: f64augmentation_strength
batch_size: usizebatch_size
max_epochs: usizemax_epochs
learning_rate: f64learning_rate
momentum: f64momentum
labeled_weight: f64labeled_weight
random_state: Option<u64>random_state
Implementations§
Source§impl SimCLR
impl SimCLR
Sourcepub fn projection_dim(self, projection_dim: usize) -> Self
pub fn projection_dim(self, projection_dim: usize) -> Self
Set the projection head dimensionality
Sourcepub fn embedding_dim(self, embedding_dim: usize) -> Self
pub fn embedding_dim(self, embedding_dim: usize) -> Self
Set the embedding dimensionality
Sourcepub fn temperature(self, temperature: f64) -> Self
pub fn temperature(self, temperature: f64) -> Self
Set the temperature parameter
Sourcepub fn augmentation_strength(self, strength: f64) -> Self
pub fn augmentation_strength(self, strength: f64) -> Self
Set the augmentation strength
Sourcepub fn batch_size(self, batch_size: usize) -> Self
pub fn batch_size(self, batch_size: usize) -> Self
Set the batch size
Sourcepub fn max_epochs(self, max_epochs: usize) -> Self
pub fn max_epochs(self, max_epochs: usize) -> Self
Set the maximum number of epochs
Sourcepub fn learning_rate(self, learning_rate: f64) -> Self
pub fn learning_rate(self, learning_rate: f64) -> Self
Set the learning rate
Sourcepub fn labeled_weight(self, labeled_weight: f64) -> Self
pub fn labeled_weight(self, labeled_weight: f64) -> Self
Set the labeled weight
Sourcepub fn random_state(self, random_state: u64) -> Self
pub fn random_state(self, random_state: u64) -> Self
Set the random state
Trait Implementations§
Source§impl Estimator for SimCLR
impl Estimator for SimCLR
Source§type Error = ContrastiveLearningError
type Error = ContrastiveLearningError
Error type for the estimator
Source§fn validate_config(&self) -> Result<(), SklearsError>
fn validate_config(&self) -> Result<(), SklearsError>
Validate estimator configuration with detailed error context
Source§fn check_compatibility(
&self,
n_samples: usize,
n_features: usize,
) -> Result<(), SklearsError>
fn check_compatibility( &self, n_samples: usize, n_features: usize, ) -> Result<(), SklearsError>
Check if estimator is compatible with given data dimensions
Source§fn metadata(&self) -> EstimatorMetadata
fn metadata(&self) -> EstimatorMetadata
Get estimator metadata
Source§impl Fit<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<ViewRepr<&i32>, Dim<[usize; 1]>>> for SimCLR
impl Fit<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<ViewRepr<&i32>, Dim<[usize; 1]>>> for SimCLR
Source§type Fitted = FittedSimCLR
type Fitted = FittedSimCLR
The fitted model type
Source§fn fit(
self,
X: &ArrayView2<'_, f64>,
y: &ArrayView1<'_, i32>,
) -> Result<Self::Fitted>
fn fit( self, X: &ArrayView2<'_, f64>, y: &ArrayView1<'_, i32>, ) -> Result<Self::Fitted>
Fit the model to the provided data with validation
Source§fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
Fit with custom validation and early stopping
Auto Trait Implementations§
impl Freeze for SimCLR
impl RefUnwindSafe for SimCLR
impl Send for SimCLR
impl Sync for SimCLR
impl Unpin for SimCLR
impl UnwindSafe for SimCLR
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
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>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> StableApi for Twhere
T: Estimator,
impl<T> StableApi for Twhere
T: Estimator,
Source§const STABLE_SINCE: &'static str = "0.1.0"
const STABLE_SINCE: &'static str = "0.1.0"
API version this type was stabilized in
Source§const HAS_EXPERIMENTAL_FEATURES: bool = false
const HAS_EXPERIMENTAL_FEATURES: bool = false
Whether this API has any experimental features