Back to Ncnn

Ncnn Load Model

docs/how-to-use-and-FAQ/ncnn-load-model.md

latest1.5 KB
Original Source

the comprehensive model loading api table

load fromalexnet.paramalexnet.param.binalexnet.bin
file pathload_param(const char*)load_param_bin(const char*)load_model(const char*)
file path
(wchar_t for windows)load_param(const wchar_t*)load_param_bin(const wchar_t*)load_model(const wchar_t*)
file descriptorload_param(FILE*)load_param_bin(FILE*)load_model(FILE*)
file memoryload_param_mem(const char*)load_param(const unsigned char*)load_model(const unsigned char*)
android assetload_param(AAsset*)load_param_bin(AAsset*)load_model(AAsset*)
android asset pathload_param(AAssetManager*, const char*)load_param_bin(AAssetManager*, const char*)load_model(AAssetManager*, const char*)
custom IO readerload_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

    • size_t Net::load_param(const unsigned char*)
    • size_t 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