# Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. from collections import OrderedDict from executorch.backends.example.example_operators.adaptive_avg_pool2d import ( AdaptiveAvgPool2dNode, ) from executorch.backends.example.example_operators.add import AddNode from executorch.backends.example.example_operators.conv2d import Conv2DNode from executorch.backends.example.example_operators.conv_relu import ConvReluNode from executorch.backends.example.example_operators.dropout import DropOutNode from executorch.backends.example.example_operators.flatten import FlattenNode from executorch.backends.example.example_operators.linear import LinearNode # The ordering of this is important as the quantizer will try to match the patterns in this order. # That's why we want to match the fused patterns first and then the non-fused ones. module_to_annotator = OrderedDict( { ConvReluNode().pattern: ConvReluNode(), Conv2DNode().pattern: Conv2DNode(), LinearNode().pattern: LinearNode(), AddNode().pattern: AddNode(), AdaptiveAvgPool2dNode().pattern: AdaptiveAvgPool2dNode(), FlattenNode().pattern: FlattenNode(), DropOutNode().pattern: DropOutNode(), } )