2.2 跑通第一个例子:模型迁移
为了运行${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中对应目录。
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的模型迁移我们就完成了!
最后更新于