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
Either of the following combination shall be enough for loading model
- alexnet.param + alexnet.bin
- alexnet.param.bin + alexnet.bin
Never modify Net opt member after loading
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*)
It is recommended to load model from Android asset directly to avoid copying them to sdcard on Android platform
The custom IO reader interface can be used to implement on-the-fly model decryption and loading