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§
Sourcefn num_qubits(&self) -> usize
fn num_qubits(&self) -> usize
Get the number of qubits this layer acts on
Sourcefn parameters(&self) -> &[Parameter]
fn parameters(&self) -> &[Parameter]
Get the parameters of this layer
Sourcefn parameters_mut(&mut self) -> &mut [Parameter]
fn parameters_mut(&mut self) -> &mut [Parameter]
Get mutable access to parameters
Sourcefn compute_gradients(
&self,
state: &Array1<Complex64>,
loss_gradient: &Array1<Complex64>,
) -> QuantRS2Result<Vec<f64>>
fn compute_gradients( &self, state: &Array1<Complex64>, loss_gradient: &Array1<Complex64>, ) -> QuantRS2Result<Vec<f64>>
Compute gradients with respect to parameters
Provided Methods§
Sourcefn set_parameters(&mut self, values: &[f64]) -> QuantRS2Result<()>
fn set_parameters(&mut self, values: &[f64]) -> QuantRS2Result<()>
Set parameter values