MCPcopy Create free account
hub / github.com/pytorch/executorch / _annotate_conv_relu

Function _annotate_conv_relu

backends/example/example_operators/conv_relu.py:17–40  ·  view source on GitHub ↗

This is what the graph of a simple conv + relu pattern looks like: l__self___conv_weight = self.L__self___conv_weight l__self___conv_bias = self.L__self___conv_bias convolution_default = torch.ops.aten.convolution.default(arg2_1, l__self___conv_weight, l__self___conv_bias, [1, 1], [

(partitions, quant_config)

Source from the content-addressed store, hash-verified

15
16
17def _annotate_conv_relu(partitions, quant_config):
18 """
19 This is what the graph of a simple conv + relu pattern looks like:
20 l__self___conv_weight = self.L__self___conv_weight
21 l__self___conv_bias = self.L__self___conv_bias
22 convolution_default = torch.ops.aten.convolution.default(arg2_1, l__self___conv_weight, l__self___conv_bias, [1, 1], [1, 1], [1, 1], False, [0, 0], 1); arg2_1 = l__self___conv_weight = l__self___conv_bias = None
23 relu_default = torch.ops.aten.relu.default(convolution_default); convolution_default = None
24 """
25
26 conv_node = partitions[0].output_nodes[0]
27 input_node = conv_node.args[0]
28 relu_node = partitions[1].output_nodes[0]
29 weight_node = conv_node.args[1]
30
31 if _nodes_are_annotated([conv_node, relu_node]):
32 return
33
34 _annotate_nodes(
35 [(conv_node, input_node)], quant_config.input_quant_spec, input_node=True
36 )
37 _annotate_nodes(
38 [(conv_node, weight_node)], quant_config.weight_quant_spec, input_node=True
39 )
40 _annotate_nodes([(relu_node,)], quant_config.output_quant_spec)
41
42
43@dataclass

Callers

nothing calls this directly

Calls 2

_nodes_are_annotatedFunction · 0.90
_annotate_nodesFunction · 0.90

Tested by

no test coverage detected