#include "caffe2/opt/optimizer.h" #include "caffe2/opt/converter.h" #include "caffe2/opt/mobile.h" #include "caffe2/opt/fusion.h" namespace caffe2 { namespace opt { void workspaceOptimizations(nom::repr::NNModule* nn, Workspace* ws, int level) { switch (level) { case 1: opt::fuseConvBN(nn, ws); case 0: default: break; } } void graphOptimzations(nom::repr::NNModule* nn, int level) { switch (level) { case 1: #ifdef USE_NNPACK opt::addNNPACK(nn, false); opt::fuseNNPACKConvRelu(nn); #endif case 0: default: break; } } NetDef optimize(NetDef net, Workspace* ws, int level) { auto nn = convertToNNModule(net); graphOptimzations(&nn, level); workspaceOptimizations(&nn, ws, level); return convertToCaffe2Proto(nn, net); } NetDef optimize(NetDef net, int level) { auto nn = convertToNNModule(net); graphOptimzations(&nn, level); return convertToCaffe2Proto(nn, net); } } // namespace opt } // namespace caffe2