quantrs2_anneal/bayesian_hyperopt/
transfer.rs

1//! Transfer Learning Configuration Types
2
3/// Transfer learning configuration
4#[derive(Debug, Clone)]
5pub struct TransferConfig {
6    /// Enable transfer learning
7    pub enabled: bool,
8    /// Source domain similarity threshold
9    pub similarity_threshold: f64,
10    /// Transfer learning method
11    pub transfer_method: TransferLearningMethod,
12    /// Source data weighting
13    pub source_weight: f64,
14    /// Domain adaptation strategy
15    pub adaptation_strategy: DomainAdaptationStrategy,
16}
17
18impl Default for TransferConfig {
19    fn default() -> Self {
20        Self {
21            enabled: true,
22            similarity_threshold: 0.7,
23            transfer_method: TransferLearningMethod::ModelTransfer,
24            source_weight: 0.1,
25            adaptation_strategy: DomainAdaptationStrategy::Gradual,
26        }
27    }
28}
29
30/// Transfer learning methods
31#[derive(Debug, Clone, PartialEq, Eq)]
32pub enum TransferLearningMethod {
33    /// Transfer entire model
34    ModelTransfer,
35    /// Transfer hyperparameters only
36    HyperparameterTransfer,
37    /// Transfer kernel parameters
38    KernelTransfer,
39    /// Transfer initial points
40    InitialPointTransfer,
41}
42
43/// Domain adaptation strategies
44#[derive(Debug, Clone, PartialEq, Eq)]
45pub enum DomainAdaptationStrategy {
46    /// Immediate adaptation
47    Immediate,
48    /// Gradual adaptation
49    Gradual,
50    /// Weighted adaptation
51    Weighted,
52}