optirs_core/regularizers/
mod.rs1use scirs2_core::ndarray::{Array, Dimension, ScalarOperand};
8use scirs2_core::numeric::Float;
9use std::fmt::Debug;
10
11use crate::error::Result;
12
13pub trait Regularizer<A, D>
15where
16 A: Float + ScalarOperand + Debug,
17 D: Dimension,
18{
19 fn apply(&self, params: &Array<A, D>, gradients: &mut Array<A, D>) -> Result<A>;
30
31 fn penalty(&self, params: &Array<A, D>) -> Result<A>;
41}
42
43mod activity;
44mod dropconnect;
45mod dropout;
46mod elastic_net;
47mod entropy;
48mod group_lasso;
49mod l1;
50mod l2;
51mod label_smoothing;
52mod manifold;
53mod mixup;
54mod orthogonal;
55mod shakedrop;
56mod spatial_dropout;
57mod spectral_norm;
58mod stochastic_depth;
59mod weight_standardization;
60
61pub use activity::{ActivityNorm, ActivityRegularization};
63pub use dropconnect::DropConnect;
64pub use dropout::Dropout;
65pub use elastic_net::ElasticNet;
66pub use entropy::{EntropyRegularization, EntropyRegularizerType};
67pub use group_lasso::{GroupLasso, SparsityPattern, StructuredSparsity};
68pub use l1::L1;
69pub use l2::L2;
70pub use label_smoothing::LabelSmoothing;
71pub use manifold::ManifoldRegularization;
72pub use mixup::{CutMix, MixUp};
73pub use orthogonal::OrthogonalRegularization;
74pub use shakedrop::ShakeDrop;
75pub use spatial_dropout::{FeatureDropout, SpatialDropout};
76pub use spectral_norm::SpectralNorm;
77pub use stochastic_depth::StochasticDepth;
78pub use weight_standardization::WeightStandardization;