pub struct LadderNetworks<S = Untrained> { /* private fields */ }Expand description
Ladder Networks for Deep Semi-Supervised Learning
Ladder Networks are neural networks that combine supervised and unsupervised learning objectives. They use lateral connections between encoder and decoder paths to enable effective learning from both labeled and unlabeled data.
The architecture consists of:
- An encoder path that applies noise and nonlinearities
- A decoder path that reconstructs clean representations
- Lateral connections that help the decoder
- Multiple reconstruction costs at different layers
§Parameters
layer_sizes- Sizes of hidden layers (including input and output)noise_std- Standard deviation of Gaussian noise added to each layerlambda_unsupervised- Weight for unsupervised reconstruction losslambda_supervised- Weight for supervised classification lossdenoising_cost_weights- Weights for denoising costs at each layerlearning_rate- Learning rate for optimizationmax_iter- Maximum number of training iterationsbatch_size- Size of mini-batches for training
§Examples
ⓘ
use sklears_semi_supervised::LadderNetworks;
use sklears_core::traits::{Predict, Fit};
let X = array![[1.0, 2.0], [2.0, 3.0], [3.0, 4.0], [4.0, 5.0]];
let y = array![0, 1, -1, -1]; // -1 indicates unlabeled
let ln = LadderNetworks::new()
.layer_sizes(vec![2, 4, 2])
.noise_std(0.3)
.lambda_unsupervised(1.0)
.lambda_supervised(1.0);
let fitted = ln.fit(&X.view(), &y.view()).unwrap();
let predictions = fitted.predict(&X.view()).unwrap();Implementations§
Source§impl LadderNetworks<Untrained>
impl LadderNetworks<Untrained>
Sourcepub fn layer_sizes(self, sizes: Vec<usize>) -> Self
pub fn layer_sizes(self, sizes: Vec<usize>) -> Self
Set the layer sizes (input size will be set automatically)
Sourcepub fn lambda_unsupervised(self, lambda: f64) -> Self
pub fn lambda_unsupervised(self, lambda: f64) -> Self
Set the unsupervised loss weight
Sourcepub fn lambda_supervised(self, lambda: f64) -> Self
pub fn lambda_supervised(self, lambda: f64) -> Self
Set the supervised loss weight
Sourcepub fn denoising_cost_weights(self, weights: Vec<f64>) -> Self
pub fn denoising_cost_weights(self, weights: Vec<f64>) -> Self
Set the denoising cost weights for each layer
Sourcepub fn learning_rate(self, lr: f64) -> Self
pub fn learning_rate(self, lr: f64) -> Self
Set the learning rate
Sourcepub fn batch_size(self, batch_size: usize) -> Self
pub fn batch_size(self, batch_size: usize) -> Self
Set the batch size
Sourcepub fn random_state(self, seed: u64) -> Self
pub fn random_state(self, seed: u64) -> Self
Set random state for reproducibility
Trait Implementations§
Source§impl<S: Clone> Clone for LadderNetworks<S>
impl<S: Clone> Clone for LadderNetworks<S>
Source§fn clone(&self) -> LadderNetworks<S>
fn clone(&self) -> LadderNetworks<S>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<S: Debug> Debug for LadderNetworks<S>
impl<S: Debug> Debug for LadderNetworks<S>
Source§impl Default for LadderNetworks<Untrained>
impl Default for LadderNetworks<Untrained>
Source§impl Estimator for LadderNetworks<Untrained>
impl Estimator for LadderNetworks<Untrained>
Source§type Error = SklearsError
type Error = SklearsError
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 LadderNetworks<Untrained>
impl Fit<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<ViewRepr<&i32>, Dim<[usize; 1]>>> for LadderNetworks<Untrained>
Source§type Fitted = LadderNetworks<LadderNetworksTrained>
type Fitted = LadderNetworks<LadderNetworksTrained>
The fitted model type
Source§fn fit(
self,
X: &ArrayView2<'_, Float>,
y: &ArrayView1<'_, i32>,
) -> SklResult<Self::Fitted>
fn fit( self, X: &ArrayView2<'_, Float>, y: &ArrayView1<'_, i32>, ) -> SklResult<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
Source§impl Predict<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>>> for LadderNetworks<LadderNetworksTrained>
impl Predict<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>>> for LadderNetworks<LadderNetworksTrained>
Source§fn predict(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array1<i32>>
fn predict(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array1<i32>>
Make predictions on the provided data
Source§fn predict_with_uncertainty(
&self,
x: &X,
) -> Result<(Output, UncertaintyMeasure), SklearsError>
fn predict_with_uncertainty( &self, x: &X, ) -> Result<(Output, UncertaintyMeasure), SklearsError>
Make predictions with confidence intervals
Source§impl PredictProba<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>>> for LadderNetworks<LadderNetworksTrained>
impl PredictProba<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>>> for LadderNetworks<LadderNetworksTrained>
Source§fn predict_proba(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array2<f64>>
fn predict_proba(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array2<f64>>
Predict class probabilities
Auto Trait Implementations§
impl<S> Freeze for LadderNetworks<S>where
S: Freeze,
impl<S> RefUnwindSafe for LadderNetworks<S>where
S: RefUnwindSafe,
impl<S> Send for LadderNetworks<S>where
S: Send,
impl<S> Sync for LadderNetworks<S>where
S: Sync,
impl<S> Unpin for LadderNetworks<S>where
S: Unpin,
impl<S> UnwindSafe for LadderNetworks<S>where
S: UnwindSafe,
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