quantrs2-ml 0.1.3

Quantum Machine Learning module for QuantRS2
Documentation
//! Auto-generated module
//!
//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)

use super::*;
use crate::error::{MLError, Result};
use crate::optimization::OptimizationMethod;
use crate::qcnn::PoolingType;
use crate::qnn::{QNNLayerType, QuantumNeuralNetwork};
use crate::quantum_transformer::{QuantumTransformer, QuantumTransformerConfig};
use quantrs2_circuit::builder::{Circuit, Simulator};
use quantrs2_core::gate::{multi::*, single::*, GateOp};
use quantrs2_sim::statevector::StateVectorSimulator;
use scirs2_core::ndarray::{s, Array1, Array2, Array3, Array4, Axis};
use std::f64::consts::PI;
/// Trait for vision models
impl Clone for Box<dyn VisionModel> {
    fn clone(&self) -> Self {
        self.clone_box()
    }
}
/// Trait for task-specific heads
impl Clone for Box<dyn TaskHead> {
    fn clone(&self) -> Self {
        self.clone_box()
    }
}
#[cfg(test)]
mod tests {
    use super::*;
    #[test]
    fn test_vision_config_creation() {
        let config = QuantumVisionConfig::default();
        assert_eq!(config.num_qubits, 12);
        let detection_config = QuantumVisionConfig::object_detection(80);
        assert_eq!(detection_config.num_qubits, 16);
        let seg_config = QuantumVisionConfig::segmentation(21);
        assert_eq!(seg_config.num_qubits, 14);
    }
    #[test]
    fn test_image_encoder() {
        let encoder = QuantumImageEncoder::new(ImageEncodingMethod::AmplitudeEncoding, 8)
            .expect("should create encoder");
        assert_eq!(encoder.num_qubits, 8);
        assert!(!encoder.encoding_circuits.is_empty());
    }
    #[test]
    fn test_preprocessing() {
        let config = PreprocessingConfig::default();
        let preprocessor = ImagePreprocessor::new(config);
        let images = Array4::zeros((2, 3, 256, 256));
        let processed = preprocessor
            .preprocess(&images)
            .expect("preprocess should succeed");
        assert_eq!(processed.dim(), (2, 3, 224, 224));
    }
}