pub struct DeepPolyNeuron {
pub lb_coeffs: Vec<f64>,
pub lb_bias: f64,
pub ub_coeffs: Vec<f64>,
pub ub_bias: f64,
pub concrete_lb: f64,
pub concrete_ub: f64,
}Expand description
A single-neuron abstract element in the DeepPoly domain.
Each neuron y_i has a concrete value bounded by a linear expression: lb_coeffs · x + lb_bias ≤ y_i ≤ ub_coeffs · x + ub_bias where x are the (input) neurons from a preceding layer.
Fields§
§lb_coeffs: Vec<f64>Coefficients of the lower linear bound (over preceding layer neurons)
lb_bias: f64Constant of the lower linear bound
ub_coeffs: Vec<f64>Coefficients of the upper linear bound
ub_bias: f64Constant of the upper linear bound
concrete_lb: f64Concrete lower bound (after back-substitution)
concrete_ub: f64Concrete upper bound (after back-substitution)
Implementations§
Source§impl DeepPolyNeuron
impl DeepPolyNeuron
Sourcepub fn abstract_relu(&self) -> Self
pub fn abstract_relu(&self) -> Self
Apply abstract ReLU: case analysis on the concrete bounds.
Sourcepub fn contains_concrete(&self, val: f64) -> bool
pub fn contains_concrete(&self, val: f64) -> bool
Check if a concrete value is within the abstract bounds.
Trait Implementations§
Source§impl Clone for DeepPolyNeuron
impl Clone for DeepPolyNeuron
Source§fn clone(&self) -> DeepPolyNeuron
fn clone(&self) -> DeepPolyNeuron
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for DeepPolyNeuron
impl RefUnwindSafe for DeepPolyNeuron
impl Send for DeepPolyNeuron
impl Sync for DeepPolyNeuron
impl Unpin for DeepPolyNeuron
impl UnsafeUnpin for DeepPolyNeuron
impl UnwindSafe for DeepPolyNeuron
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more