def abs_pattern() -> tvm.relay.dataflow_pattern.DFPattern: """Create pattern for abs""" pattern = is_op("qnn.dequantize")(wildcard(), is_constant(), is_constant()) pattern = is_op("abs")(pattern) pattern = is_op("qnn.quantize")(pattern, is_constant(), is_constant()) return pattern
def tanh_pattern(): """Create pattern for tanh""" dequant = is_op("qnn.dequantize")(wildcard(), is_constant(), is_constant()) tanh = is_op("tanh")(dequant) quant = is_op("qnn.quantize")(tanh, is_constant(), is_constant()) return quant
def reshape_pattern(): """Create pattern for reshape""" pattern = is_op("reshape")(wildcard()) return pattern
def strided_slice_pattern(): """Create pattern for strided_slice""" pattern = is_op("strided_slice")(wildcard()) return pattern
def __init__(self): super().__init__(require_type=True, rewrite_once=True) self.reshape = is_op("reshape")(wildcard()) self.strided_slice = is_op("strided_slice")(wildcard()) self.pattern = self.reshape | self.strided_slice
def binary_op_pattern_with_const(op): """Matches binary operation with rhs arg a constant""" return is_op(op)(wildcard(), is_constant())
def pattern_B(): x = wildcard() y = wildcard() out = is_op('add')(x, y) out = is_op('abs')(out) return out
def __init__(self): super().__init__(require_type=True) self.pattern = (wildcard().has_attr({ "Composite": ethosu_patterns.QnnDepthwiseConv2DParams.composite_name }))(wildcard())
def proj_five_op_pattern_with_const(op: relay.expr.Expr) -> relay.dataflow_pattern.DFPattern: return is_tuple_get_item( is_op(op)(wildcard(), is_constant(), is_constant(), is_constant(), is_constant()), 0 )
def __init__(self): super().__init__(require_type=True) self.pattern = (wildcard().has_attr( {"Composite": ethosu_patterns.FullyConnectedParams.composite_name}))(wildcard())
def binary_op_pattern_with_const(op: relay.expr.Expr) -> relay.dataflow_pattern.DFPattern: """Matches binary operation with rhs arg a constant""" return is_op(op)(wildcard(), is_constant())
def binary_op_pattern(op: relay.expr.Expr) -> relay.dataflow_pattern.DFPattern: """Matches binary operation""" return is_op(op)(wildcard(), wildcard())
def _get_breakpoint_patterns() -> List[dfp.DFPattern]: x = dfp.wildcard() shortcut = dfp.wildcard() x = dfp.is_op('add')(x, shortcut) x = dfp.is_op('nn.relu')(x) return [x]
def sigmoid_pattern(): """Create pattern for sigmoid""" dequant = is_op("qnn.dequantize")(wildcard(), is_constant(), is_constant()) sigmoid = is_op("sigmoid")(dequant) quant = is_op("qnn.quantize")(sigmoid, is_constant(), is_constant()) return quant
def pattern_C(): x = wildcard() out = is_op('abs')(x) out = is_op('nn.relu')(out) return out
def __init__(self): super().__init__(require_type=True) self.pattern = (wildcard().has_attr( {"Composite": "ethos-u.qnn_conv2d"}))(wildcard())
def get_pattern(): conv = make_conv_bias_relu_pattern() clip = is_op('clip')(conv, wildcard(), wildcard()) return is_op('multiply')(conv, clip)
def __init__(self): super().__init__(require_type=True) self.split_in = wildcard() self.pattern = is_op("split")(self.split_in)
def split_pattern(): "Create the pattern for split" split = is_op("split")(wildcard()) return split
def __init__(self): super().__init__(require_type=True, rewrite_once=True) self.pattern = (wildcard().has_attr( {"Composite": ethosu_patterns.SplitParams.composite_name}))(wildcard())
def binary_op_pattern(op): """Matches binary operation""" return is_op(op)(wildcard(), wildcard())