# ncnn python wrapper of ncnn with [pybind11](https://github.com/pybind/pybind11), only support python3.x now. Install from pip ================== ncnn is available as wheel packages for macOS, Windows and Linux distributions, you can install with pip: ``` python -m pip install -U pip python -m pip install -U ncnn ``` # Build from source If you want to build ncnn with some options not as default, or just like to build everything yourself, it is not difficult to build ncnn from source. ## Prerequisites **On Unix (Linux, OS X)** * A compiler with C++11 support * CMake >= 3.4 **On Mac** * A compiler with C++11 support * CMake >= 3.4 **On Windows** * Visual Studio 2015 or higher * CMake >= 3.4 ## Build 1. clone ncnn and init submodule. ```bash cd /pathto/ncnn git submodule init && git submodule update ``` 2. build. ```bash mkdir build cd build cmake -DNCNN_PYTHON=ON .. make ``` ## Install ```bash cd /pathto/ncnn pip install . ``` if you use conda or miniconda, you can also install as following: ```bash cd /pathto/ncnn python3 setup.py install ``` ## Tests **test** ```bash cd /pathto/ncnn/python python3 tests/test.py ``` **benchmark** ```bash cd /pathto/ncnn/python python3 tests/benchmark.py ``` ## Numpy **ncnn.Mat->numpy.array, with no memory copy** ```bash mat = ncnn.Mat(...) mat_np = np.array(mat) ``` **numpy.array->ncnn.Mat, with no memory copy** ```bash mat_np = np.array(...) mat = ncnn.Mat(mat_np) ``` # Model Zoo install requirements ```bash pip install -r requirements.txt ``` then you can import ncnn.model_zoo and get model list as follow: ```bash import ncnn import ncnn.model_zoo as model_zoo print(model_zoo.get_model_list()) ``` models now in model zoo are as list below: ```bash mobilenet_yolov2 mobilenetv2_yolov3 yolov4_tiny yolov4 yolov5s yolact mobilenet_ssd squeezenet_ssd mobilenetv2_ssdlite mobilenetv3_ssdlite squeezenet faster_rcnn peleenet_ssd retinaface rfcn shufflenetv2 simplepose nanodet ``` all model in model zoo has example in ncnn/python/examples folder # Custom Layer custom layer demo is in ncnn/python/ncnn/model_zoo/yolov5.py:23