def extract(node: Node): pb = node.pb assert pb, 'Protobuf layer can not be empty' param = pb.power_param attrs = { 'output_spatial_shape': None, 'power': param.power, 'scale': param.scale, 'shift': param.shift, } Power.update_node_stat(node, attrs) return __class__.enabled
def replace_pattern(graph: Graph, match: [str, Node]): op = match['op'] op_type = op.type const_port, tensor_port = get_value_in_port(op), get_tensor_in_port(op) if const_port is None or tensor_port is None: return value = const_port.data.get_value() assert value is not None if value.size != 1: return value = value.item(0) assert op_type in EltwisesWithScalarInputToPower.eltw_types if op_type == 'Add': delete_node = value == 0 Power.update_node_stat(op, {'shift': value}) elif op_type == 'Multiply': delete_node = value == 1 Power.update_node_stat(op, {'scale': value}) elif op_type == 'Pow': delete_node = value == 1 Power.update_node_stat(op, {'power': value}) const_port.disconnect() if tensor_port.idx != 0: tensor_port.get_connection().set_destination(op.in_port(0))
def extract(node): # update the attributes of the node Power.update_node_stat(node, {'power': 1 / 2, 'op': SqrtExtractor.op}) return __class__.enabled
def extract(cls, node): Power.update_node_stat(node, {'scale': 0}) return cls.enabled
def extract(cls, node): # update the attributes of the node Power.update_node_stat(node, {'power': 2}) return cls.enabled
def extract(cls, node): Power.update_node_stat(node, {'power': -0.5}) return cls.enabled
def extract(node: Node): Power.update_node_stat(node) return __class__.enabled
def extract(node): Power.update_node_stat(node, {'scale': 0}) return __class__.enabled
def extract(node): # update the attributes of the node Power.update_node_stat(node, {'power': 2}) return __class__.enabled
def extract(node): Power.update_node_stat(node, {'power': -0.5}) return __class__.enabled
def extract(node: Node): scale = onnx_attr(node, 'scale', 'f', default=np.array(1.0), dst_type=lambda x: np.array(x)) Power.update_node_stat(node, {'scale': scale}) return __class__.enabled