pub struct HardwareNasSearcher { /* private fields */ }Expand description
Hardware-aware NAS searcher.
Implementations§
Source§impl HardwareNasSearcher
impl HardwareNasSearcher
Sourcepub fn new(config: HardwareNasConfig, latency_table: LatencyTable) -> Self
pub fn new(config: HardwareNasConfig, latency_table: LatencyTable) -> Self
Create a new searcher.
Sourcepub fn random_search(
&mut self,
eval_fn: impl Fn(&[Operation]) -> f64,
) -> Result<ArchCandidate, OptimizeError>
pub fn random_search( &mut self, eval_fn: impl Fn(&[Operation]) -> f64, ) -> Result<ArchCandidate, OptimizeError>
Random search: sample n_search_iter architectures, evaluate with eval_fn,
filter by constraints, return the best.
eval_fn receives a slice of Operation and returns an accuracy estimate
in [0, 1].
Returns an error if no candidate satisfies the hardware constraints.
Sourcepub fn evolutionary_search(
&mut self,
eval_fn: impl Fn(&[Operation]) -> f64,
) -> Result<ArchCandidate, OptimizeError>
pub fn evolutionary_search( &mut self, eval_fn: impl Fn(&[Operation]) -> f64, ) -> Result<ArchCandidate, OptimizeError>
Evolutionary search: start with a random population, apply tournament
selection and random mutation for n_generations, return the best
constraint-satisfying candidate found.
Sourcepub fn pareto_front(candidates: &[ArchCandidate]) -> Vec<usize>
pub fn pareto_front(candidates: &[ArchCandidate]) -> Vec<usize>
Compute the Pareto front of a set of candidates w.r.t.
(estimated_accuracy, -estimated_latency) (both maximised).
Returns the indices of non-dominated candidates.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HardwareNasSearcher
impl RefUnwindSafe for HardwareNasSearcher
impl Send for HardwareNasSearcher
impl Sync for HardwareNasSearcher
impl Unpin for HardwareNasSearcher
impl UnsafeUnpin for HardwareNasSearcher
impl UnwindSafe for HardwareNasSearcher
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.