over the past years. There are two main types of object recognition systems which are based on CNNs, one-stage, and two-stage. In one-stage methods, we classify and localize objects in one-stage. Images, when forwarded through the network produce a single output which is then used to classify or localize objects. Some examples of one-stage methods are Yolo [@redmon2018yolov3], RetinaNet [@lin2018focal] and DSSD [@fu2017dssd]. These models are faster compared to other methods due to ruining in a single stage. The second types of models are two-stage methods in which classification and localization happen as two different stages, using classification networks and region proposal networks respectively. Two famous two-stage models are FasterRCNN [@ren2015faster], R-FCN [@dai2016r]. These models reach to higher performance with high intersection over union (IOU). However, Redmon et al. [@redmon2018yolov3] showed at lower IOU (IOU=0.5) one-stage models can perform the same accuracy as two-stage models.

**Model Compression:** Another thrust of work has focused on reducing the resources consumption of CNNs (due to expensive computation and memory usage) by compressing the network structures [@han2015learning; @rastegari2016xnor]. Network pruning is one of well-studied approach which removes unnecessary connections from CNN model, to gain inference speedup [@wen2016learning; @iandola2016squeezenet]. Quantizing [@han2015deep; @farhadi2019novel] and binarizing [@rastegari2016xnor; 