Struct caffe2_transform::TypeSwapTransform
source · pub struct TypeSwapTransform { /* private fields */ }
Expand description
This TransformDummy transform will find all operators of type old_type, and replace them with type new_type.
Implementations§
source§impl TypeSwapTransform
impl TypeSwapTransform
sourcepub fn new(old_type: String, new_type: String) -> Self
pub fn new(old_type: String, new_type: String) -> Self
Determine the actual strings through inheriting from derived type.
sourcepub fn pattern_rule(&mut self, g: &Graph, subgraph: &Vec<i32>, idx: i32) -> bool
pub fn pattern_rule(&mut self, g: &Graph, subgraph: &Vec<i32>, idx: i32) -> bool
Really simple, only accept if it’s a FastSleepOp, and no match so far.
Trait Implementations§
source§impl Transform for TypeSwapTransform
impl Transform for TypeSwapTransform
source§fn pattern_match(&mut self, graph: &Graph) -> Vec<Vec<i32>>
fn pattern_match(&mut self, graph: &Graph) -> Vec<Vec<i32>>
| Generates all matches (stored as ordered
| subgraphs) and returns them.
|
| A match is stored as vector, which
| is a mapping to OperatorDefs in Graph.
| The order matters.
|
source§fn try_neighbors(
&mut self,
graph: &Graph,
neighbors: &HashMap<i32, Vec<String>>,
matched: &Vec<bool>,
subgraph_ptr: *mut Vec<i32>,
best_subgraph_ptr: *mut Vec<i32>
)
fn try_neighbors( &mut self, graph: &Graph, neighbors: &HashMap<i32, Vec<String>>, matched: &Vec<bool>, subgraph_ptr: *mut Vec<i32>, best_subgraph_ptr: *mut Vec<i32> )
| Attempts to append each neighbor to
| the end of the subgraph.
|
source§fn pattern_match_helper(
&mut self,
graph: &Graph,
matched: &Vec<bool>,
subgraph_ptr: *mut Vec<i32>,
best_subgraph_ptr: *mut Vec<i32>
)
fn pattern_match_helper( &mut self, graph: &Graph, matched: &Vec<bool>, subgraph_ptr: *mut Vec<i32>, best_subgraph_ptr: *mut Vec<i32> )
| A helper function for PatternMatch,
| which keeps track of the best subgraph
| so far.
|
source§fn pattern_rule(&mut self, g: &Graph, subgraph: &Vec<i32>, idx: i32) -> bool
fn pattern_rule(&mut self, g: &Graph, subgraph: &Vec<i32>, idx: i32) -> bool
| The PatternRule essentially answers:
|
| Given the current subgraph (ordered),
| should we append the new node at idx?
|
source§fn validator_rule(&mut self, g: &Graph, subgraph: &Vec<i32>) -> bool
fn validator_rule(&mut self, g: &Graph, subgraph: &Vec<i32>) -> bool
| The ValidatorRule essentially answers:
|
| Given a subgraph, can we accept it?
|
source§fn replace_rule(&mut self, subgraph: &Vec<i32>, g_ptr: *mut Graph) -> bool
fn replace_rule(&mut self, subgraph: &Vec<i32>, g_ptr: *mut Graph) -> bool
| The ReplaceRule actually mutates the
| graph, and applies the transformation
| upon the subgraph.
|
fn set_pattern_match_type(&mut self, ty: PatternMatchType)
Auto Trait Implementations§
impl RefUnwindSafe for TypeSwapTransform
impl Send for TypeSwapTransform
impl Sync for TypeSwapTransform
impl Unpin for TypeSwapTransform
impl UnwindSafe for TypeSwapTransform
Blanket Implementations§
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
§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 more§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).§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.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.