Trait QMLLayer

Source
pub trait QMLLayer: Send + Sync {
    // Required methods
    fn num_qubits(&self) -> usize;
    fn parameters(&self) -> &[Parameter];
    fn parameters_mut(&mut self) -> &mut [Parameter];
    fn gates(&self) -> Vec<Box<dyn GateOp>>;
    fn compute_gradients(
        &self,
        state: &Array1<Complex64>,
        loss_gradient: &Array1<Complex64>,
    ) -> QuantRS2Result<Vec<f64>>;
    fn name(&self) -> &str;

    // Provided method
    fn set_parameters(&mut self, values: &[f64]) -> QuantRS2Result<()> { ... }
}
Expand description

Trait for quantum machine learning layers

Required Methods§

Source

fn num_qubits(&self) -> usize

Get the number of qubits this layer acts on

Source

fn parameters(&self) -> &[Parameter]

Get the parameters of this layer

Source

fn parameters_mut(&mut self) -> &mut [Parameter]

Get mutable access to parameters

Source

fn gates(&self) -> Vec<Box<dyn GateOp>>

Get the gates that make up this layer

Source

fn compute_gradients( &self, state: &Array1<Complex64>, loss_gradient: &Array1<Complex64>, ) -> QuantRS2Result<Vec<f64>>

Compute gradients with respect to parameters

Source

fn name(&self) -> &str

Get layer name

Provided Methods§

Source

fn set_parameters(&mut self, values: &[f64]) -> QuantRS2Result<()>

Set parameter values

Implementors§