concept.png

    As shown in the figure above, applying MNN can be roughly divided into three phases:

    • Train

    Phase of training models based on training data on the traning framework. The training ability provided by MNN is mainly used for end-side training or model tuning currently. When the amount of data is large, it is still recommended to use mature training frameworks such as TensorFlow, PyTorch, etc. In addition, you can also use the open source pre-training model directly.

    • Convert

    Phase of converting other training framework models into the MNN models. MNN currently supports model converting for Tensorflow (Lite), Caffe, and ONNX. The model conversion tool can refer to the compiling documentation and usage documentation. You can refer to the operator list for supported operators; when encountering an unsupported operator, you can try customizing the operator or submit an issue to us on Github.
    In addition, the model dump tool can be used to output the model structure to aid debugging.
    MNN also provides a model quantification tool to quantify the floating point model.

    • Infer

    Phase of loading the MNN model and infering. For runtime libraries compilation, please refer to the compilation documentation for each platform: iOS, Android, Linux/macOS/Ubuntu and Windows.
    We provide the API documentation, as well as documents for session creation, data input, infering and data output in details.
    In addition, test tools and benchmark tools can also be used for problem location.

    .