Skip to main content

quantrs2_ml/quantum_self_supervised_learning/
quantumselfsupervisedconfig_traits.rs

1//! # QuantumSelfSupervisedConfig - Trait Implementations
2//!
3//! This module contains trait implementations for `QuantumSelfSupervisedConfig`.
4//!
5//! ## Implemented Traits
6//!
7//! - `Default`
8//!
9//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
10
11use scirs2_core::random::prelude::*;
12
13use super::types::{
14    ClusteringConfig, ContrastiveConfig, ContrastiveLossFunction, MaskEvolutionType, MaskStrategy,
15    MaskedLearningConfig, MomentumConfig, NegativePairStrategy, PositivePairStrategy,
16    PrototypeUpdateStrategy, QuantumAssignmentMethod, QuantumClusteringMethod,
17    QuantumMaskEvolution, QuantumProjector, QuantumSSLMethod, QuantumSelfSupervisedConfig,
18    ReconstructionTarget, TargetNetworkUpdate, TemperatureScheduling,
19};
20
21impl Default for QuantumSelfSupervisedConfig {
22    fn default() -> Self {
23        Self {
24            input_dim: 64,
25            representation_dim: 128,
26            num_qubits: 8,
27            ssl_method: QuantumSSLMethod::QuantumSimCLR {
28                batch_size: 256,
29                augmentation_strength: 0.5,
30                quantum_projector: QuantumProjector {
31                    projection_layers: Vec::new(),
32                    output_normalization: true,
33                    quantum_enhancement: 1.0,
34                },
35            },
36            quantum_enhancement_level: 1.0,
37            temperature: 0.1,
38            momentum_coefficient: 0.999,
39            use_quantum_augmentations: true,
40            enable_entanglement_similarity: true,
41            contrastive_config: ContrastiveConfig {
42                positive_pair_strategy: PositivePairStrategy::Augmentation,
43                negative_pair_strategy: NegativePairStrategy::Random,
44                loss_function: ContrastiveLossFunction::InfoNCE,
45                temperature_scheduling: TemperatureScheduling::Fixed,
46            },
47            masked_learning_config: MaskedLearningConfig {
48                mask_ratio: 0.15,
49                mask_strategy: MaskStrategy::Random,
50                reconstruction_target: ReconstructionTarget::RawPixels,
51                quantum_mask_evolution: QuantumMaskEvolution {
52                    evolution_type: MaskEvolutionType::Static,
53                    adaptation_rate: 0.01,
54                    quantum_coherence_preservation: 0.9,
55                },
56            },
57            momentum_config: MomentumConfig {
58                momentum_coefficient: 0.999,
59                target_network_update: TargetNetworkUpdate::Soft,
60                quantum_momentum_preservation: 0.9,
61            },
62            clustering_config: ClusteringConfig {
63                num_clusters: 256,
64                clustering_method: QuantumClusteringMethod::QuantumKMeans,
65                prototype_update_strategy: PrototypeUpdateStrategy::MovingAverage,
66                quantum_assignment_method: QuantumAssignmentMethod::SoftAssignment,
67            },
68        }
69    }
70}