To tackle the accuracy degradation with extreme low bit precision quantization, we chose two different bit precision settings (\(X = 2 \) ), INT4 and INT8 for our TinyM\(^2\) Net framework. As our TinyM\(^2\) Net is flexible in terms of number of layers, for a model with \(Y\)  layers, the search space for ILP becomes \(X^Y\) . ILP will find the best bit precision choices from \(X^Y\)  search spaces to have optimal trade-off between model perturbation \(\Omega \)  and user specific constraints i.e. model size and Bit Operations, BOPS. Each of these bit-precision options has the potential to produce different model perturbation. We assumed the perturbation for each layer are independent to each other [1]} (i.e., \(\Omega \)  = \(\sum _{i=1}^{Y} \Omega _{i}^{x_i}\) , where \(\Omega _{i}^{x_i}\)  is the perturbation of i-th layer with \(x_i\)  bit). This enables us to pre-calculate the sensitivity of each layer independently, with only \(XY\)  computations required. Hessian based perturbation, presented in [1]} is used as sensitivity metric. Minimizing this sensitivity, ILP tries to find the right bit precision settings. The ILP equations would be as follows:
Objective:
\(\small \min {\left\lbrace x_{i}\right\rbrace _{i=1}^{Y}} \hspace{2.84526pt} \sum _{i=1}^{Y} \Omega _{i}^{\left(x_{i}\right)},\) 
