littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于OpenCL和CPU的轻量级神经网络系统

项目简介

LWNN(Lightweight Neural Network)是一个轻量级神经网络开源工具集,致力于为边缘AI领域贡献力量。该项目受NNOM、CMSIS - NN等启发,结合对OpenCL的研究,打造了适用于PC、移动设备和MCU等多种设备的轻量级神经网络。它支持多种深度学习框架模型的转换,可在CPU和OpenCL环境下运行,还具备模型量化、构建、优化等功能。

项目的主要特性和功能

  1. 多框架支持:可将Keras、Caffe、TensorFlow、OpenVINO等多种深度学习框架的模型转换为LWNN模型,也能把LWNN模型转换为ONNX模型,方便在不同框架间迁移。
  2. 模型处理:提供模型构建和优化功能,支持模型量化处理,提升在资源有限设备上的运行效率。
  3. 多平台实现:提供CPU和OpenCL环境下的模型实现,满足不同计算需求。
  4. 工具丰富:提供验证模型输出、比较不同模型输出差异、生成模型输入数据、加载和管理模型输入数据等工具。
  5. 支持多种著名模型:支持MobileNet - SSD、YOLOv3、ENET、DeepSpeech、Mask - RCNN等著名模型。

安装使用步骤

准备环境

sh conda create -n lwnn python=3.6 source activate lwnn conda install scons pip install tensorflow keras keras2onnx onnxruntime sudo apt install nvidia-opencl-dev

构建项目

sh scons

运行模型示例

sh lwnn_gtest --gtest_filter=*CL*SSDFloat -i images/dog.jpg lwnn_gtest --gtest_filter=*CPU*SSDFloat -i images/dog.jpg lwnn_gtest --gtest_filter=*CL*YOLOV3Float -i images/dog.jpg lwnn_gtest --gtest_filter=*CPU*YOLOV3Float -i images/dog.jpg lwnn_gtest --gtest_filter=*CPU*MASKRCNNFloat -i images/dog.jpg lwnn_gtest --gtest_filter=*CL*ENETFloat -i ENet/example_image/munich_000000_000019_leftImg8bit.png lwnn_gtest --gtest_filter=*CPU*ENETFloat -i ENet/example_image/munich_000000_000019_leftImg8bit.png lwnn_gtest --gtest_filter=*CPU*DSFloat -i speech_dataset/bird/042ea76c_nohash_0.wav

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】