Better handling of node PTQ categories
The Post Training Quantization algortihm process the nodes by category. Current design exposes 3 main categories:
- Affine : nodes which contain affine transforms (that is Y = A.X + B)
- Seamless : nodes which does not affect the PTQ process
- Merging : nodes that merge multiple branches into one
Thoses categories contain node types (FC, Concat, ReLU, ...), and are currently hardcoded as sets of strings in the Cilpping header file :
static const std::set<std::string> affineNodeTypes({"FC", "Conv", "ConvDepthWise", "PaddedConv", "PaddedConvDepthWise"});
static const std::set<std::string> seamlessNodeTypes({"Pad", "MaxPooling", "AvgPooling", "PaddedMaxPooling", "PaddedAvgPooling", "GlobalAveragePooling", "Reshape", "Transpose", "Gather"});
static const std::set<std::string> mergingNodeTypes({"Add", "Concat", "Sub"})
This way of handling the node categories is rigid, so we would like to change it to a more flexible and generic way.
Edited by Benjamin Halimi