  Despite that accelerating convolutional neural network (CNN) receives an
increasing research focus, the save on resource consumption always comes with a
decrease in accuracy. To both increase accuracy and decrease resource
consumption, we explore an environment information, called class skew, which is
easily available and exists widely in daily life. Since the class skew may
switch as time goes, we bring up probability layer to utilize class skew
without any overhead during the runtime. Further, we observe class skew
dichotomy that some class skew may appear frequently in the future, called hot
class skew, and others will never appear again or appear seldom, called cold
class skew. Inspired by techniques from source code optimization, two modes,
i.e., interpretation and compilation, are proposed. The interpretation mode
pursues efficient adaption during runtime for cold class skew and the
compilation mode aggressively optimize on hot ones for more efficient
deployment in the future. Aggressive optimization is processed by
class-specific pruning and provides extra benefit. Finally, we design a
systematic framework, SECS, to dynamically detect class skew, processing
interpretation and compilation, as well as select the most accurate
architectures under the runtime resource budget. Extensive evaluations show
that SECS can realize end-to-end classification speedups by a factor of 3x to
11x relative to state-of-the-art convolutional neural networks, at a higher
accuracy.
