✏️
BMNNSDK2开发手册
  • BM1684 BMNNSDK2 入门手册
  • 一、BMNNSDK2软件包
    • 1.1 BMNNSDK2 简介
    • 1.2 BMNNSDK2 文档
    • 1.3 基本概念介绍
    • 1.4 获取BMNNSDK2 SDK
    • 1.5 安装BMNNSDK2 SDK
      • 1.5.1 环境配置-Linux
      • 1.5.2 环境配置-Windows
      • 1.5.3 环境配置-SoC
    • 1.6 更新BMNNSDK
    • 1.7 参考样例简介
    • 1.8 BMNNSDK2更新记录
    • 1.9 BMNNSDK2已知问题
  • 二、快速入门
    • 2.1 跑通第一个例子:综述
    • 2.2 跑通第一个例子:模型迁移
    • 2.3 跑通第一个例子:算法迁移
  • 三、网络模型迁移
    • 3.1 模型迁移概述
    • 3.2 FP32 模型生成
      • 3.2.1 编译Caffe模型
      • 3.2.2 编译TensorFlow模型
      • 3.2.3 编译MXNet模型
      • 3.2.4 编译PyTorch模型
      • 3.2.5 编译 Darknet 模型
      • 3.2.6 编译ONNX模型
      • 3.2.7 编译Paddle模型
    • 3.3 INT8 模型生成
      • 3.3.1 准备lmdb数据集
      • 3.3.2 生成FP32 Umodel
      • 3.3.3 生成INT8 Umodel
      • 3.3.4 精度测试
      • 3.3.5 生成INT8 Bmodel
      • 3.3.6 auto_cali一键量化工具
    • 3.4 实例演示
      • 3.4.1 create_lmdb_demo
      • 3.4.2 classify_demo
      • 3.4.3 face_demo
  • 四、算法移植
    • 4.1 算法移植概述
    • 4.2 C/C++编程详解
    • 4.3 Python编程详解
    • 4.4 解码模块
    • 4.5 图形运算加速模块
    • 4.6 模型推理
    • 4.7 实例演示
  • 五、打包和发布
    • 5.1 概述
    • 5.2 PCIE加速卡模式
    • 5.3 SOC模式
  • 附录
由 GitBook 提供支持
在本页
  • 2.2.1 下载原始模型
  • 2.2.2 准备开发环境
  • 2.2.3 生成fp32 bmodel
  • 2.2.4 生成int8 bmodel
  1. 二、快速入门

2.2 跑通第一个例子:模型迁移

上一页2.1 跑通第一个例子:综述下一页2.3 跑通第一个例子:算法迁移

最后更新于3年前

为了运行${BMNNSDK}/examples/SSD_object/cpp_cv_bmcv_bmrt这个例子,需要使用原始Caffe模型生成2个模型:

  • fp32_ssd300.bmodel

  • int8_ssd300.bmodel

2.2.1 下载原始模型

若您可以访问google网络硬盘,则可以使用${BMNNSDK}/examples/SSD_object/model下脚本文件download_ssd_model.sh从google网络硬盘下载原始SSD模型:

# 从google网盘下载原始SSD Caffe模型
cd ${BMNNSDK}/examples/SSD_object/model
./download_ssd_model.sh

脚本将在下载完压缩包后自动解压为当前目录下的models文件夹;并创建ssd300.caffemodel和ssd300_deploy.prototxt的软链接指向models下的实体文件。这两个文件就是我们所需的原始Caffe模型文件。

若您无法访问google网络硬盘,则您需要手动从百度网盘下载所需文件,然后参考下述说明将文件解压到SDK中对应目录。

从百度网盘下载所需文件

若您无法访问google网络硬盘,请从以下百度网盘链接下载后拷贝到该目录。

原始Caffe模型数据:models_VGGNet_VOC0712_SSD_300x300.tar.gz:

Password: i4x9

量化使用的图片集数据:VOC712.tgz:

Password:nl7v

解压所需文件

# 切换到指定目录
cd ${BMNNSDK}/examples/SSD_object/model
# 解压数据集到data目录下,完成后应该能看到data.mdb lock.mdb
tar zxf VOC712.tgz全路径 -C ./data/
# 将下载的文件models_VGGNet_VOC0712_SSD_300x300.tar.gz放到examples/SSD_object/model目录下
./download_ssd_model.sh

2.2.2 准备开发环境

转换模型前需要进入docker环境,切换到sdk根目录,启动docker容器:

# 从宿主机SDK根目录下执行脚本进入docker环境
./docker_run_bmnnsdk.sh

在docker容器内安装SDK及设置环境变量:

# 在docker容器内执行
cd /workspace/scripts
# 安装库
./install_lib.sh nntc
# 设置环境变量,注意此命令只对当前终端有效,重新进入需要重新执行
source envsetup_pcie.sh    # for PCIE MODE
source envsetup_cmodel.sh  # for SoC MODE

2.2.3 生成fp32 bmodel

# 切换到指定目录
cd /workspace/examples/SSD_object/model
# 生成fp32 bmodel
./gen_bmodel.sh

以上步骤正确执行后,会在out目录下生成fp32_ssd300.bmodel 文件。

2.2.4 生成int8 bmodel

# fp32模型转换完成之后,接着执行如下指令生成int8 bmodel
./gen_umodel_int8bmodel.sh 

成功执行后,会看到out目录下多了一个文件int8_ssd300.bmodel

至此,fp32和int8的模型迁移我们就完成了!

https://pan.baidu.com/s/1pLxeLaVoisqN7IVyfrNhag
https://pan.baidu.com/s/1o9e7uqKBFx0MODssm4JdiQ