deepin-ocr/3rdparty/ncnn/docs/how-to-use-and-FAQ/ncnn-load-model.md

27 lines
1.4 KiB
Markdown
Raw Permalink Normal View History

### the comprehensive model loading api table
|load from|alexnet.param|alexnet.param.bin|alexnet.bin|
|---|---|---|---|
|file path|load_param(const char*)|load_param_bin(const char*)|load_model(const char*)|
|file descriptor|load_param(FILE*)|load_param_bin(FILE*)|load_model(FILE*)|
|file memory|load_param_mem(const char*)|load_param(const unsigned char*)|load_model(const unsigned char*)|
|android asset|load_param(AAsset*)|load_param_bin(AAsset*)|load_model(AAsset*)|
|android asset path|load_param(AAssetManager*, const char*)|load_param_bin(AAssetManager*, const char*)|load_model(AAssetManager*, const char*)|
|custom IO reader|load_param(const DataReader&)|load_param_bin(const DataReader&)|load_model(const DataReader&)|
### points to note
1. Either of the following combination shall be enough for loading model
* alexnet.param + alexnet.bin
* alexnet.param.bin + alexnet.bin
2. Never modify Net opt member after loading
3. Most loading functions return 0 if success, except loading alexnet.param.bin and alexnet.bin from file memory, which returns the bytes consumed after loading
* int Net::load_param(const unsigned char*)
* int Net::load_model(const unsigned char*)
4. It is recommended to load model from Android asset directly to avoid copying them to sdcard on Android platform
5. The custom IO reader interface can be used to implement on-the-fly model decryption and loading