Esempio n. 1
0
 def match_function(self, G: GraphView):
     sub = GraphView()
     sub.add_node(MatchNode('0', matcher=lambda node:\
             isinstance(node, PadParameters)))
     sub.add_node(MatchNode('1', matcher=lambda node:\
             isinstance(node, FilterLikeParameters) and\
             self.has_no_padding(node)))
     sub.add_edge(Edge('0', '1'))
     return G.match_fragment(sub)
Esempio n. 2
0
 def match_function(self, G: GraphView):
     sub = GraphView()
     sub.add_node(MatchNode('0',
                            matcher=lambda node:
                            isinstance(node, FcParameters) and
                            self.valid_linear(node)))
     sub.add_node(MatchNode('1', matcher=lambda node:
                            isinstance(node, ActivationParameters) and
                            self.valid_activation(node)))
     sub.add_edge(Edge('0', '1'))
     return G.match_fragment(sub)
Esempio n. 3
0
    def match_function(self, G: GraphView):
        sub = GraphView()
        sub.add_node(MatchNode('0', matcher=lambda node:\
                isinstance(node, FilterParameters)))
        sub.add_node(MatchNode('1', matcher=lambda node:\
                isinstance(node, MatrixAddParameters)))
        sub.add_node(MatchNode('2', matcher=lambda node:\
                isinstance(node, ConstantInputParameters)))
        sub.add_edge(Edge('0', '1', to_idx=0))
        sub.add_edge(Edge('2', '1', to_idx=1))

        return G.match_fragment(sub)
Esempio n. 4
0
    def match_function(self, G: GraphView):
        sub = GraphView()
        sub.add_node(
            MatchNode(
                '0',
                matcher=lambda node: isinstance(node, ReluActivationParameters
                                                ) and node.upper_bound == 6))
        sub.add_node(
            MatchNode(
                '1',
                matcher=lambda node: isinstance(node, MatrixMulParameters)))
        sub.add_node(
            MatchNode(
                '2',
                matcher=lambda node: isinstance(node, ConstantInputParameters)
                and check_equals(G, node, 1.0 / 6.0)))
        sub.add_edge(Edge('0', '1', to_idx=0))
        sub.add_edge(Edge('2', '1', to_idx=1))

        return G.match_fragment(sub)
Esempio n. 5
0
    def match_function(self, G: GraphView):
        sub = GraphView()
        sub.add_node(MatchNode('0', matcher=lambda node:\
                isinstance(node, Conv2DParameters) and\
                self.valid_activation(node)))
        if self.match_activation and self.match_pool:
            if self.pool_after_activation:
                self.add_activation('1', sub)
                self.add_pooling('2', sub)
            else:
                self.add_pooling('1', sub)
                self.add_activation('2', sub)
            sub.add_edge(Edge('0', '1'))
            sub.add_edge(Edge('1', '2'))
        elif self.match_activation:
            self.add_activation('1', sub)
            sub.add_edge(Edge('0', '1'))
        elif self.match_pool:
            self.add_pooling('1', sub)
            sub.add_edge(Edge('0', '1'))

        return G.match_fragment(sub)
Esempio n. 6
0
 def match_function(self, G: GraphView):
     sub = GraphView()
     sub.add_node(NoOPMatcher('0'))
     return G.match_fragment(sub)