分析模型耗时情况
-
添加测试模型
在
<path_to_tnn>/model
目录下添加测试模型,每个模型一个文件夹,文件夹中包含以proto和model结尾的模型文件。目前工程中已有模型squeezenetv1.1 -
打开benchmark工程
进入目录
<path_to_tnn>/benchmark/benchmark_ios
,双击打开benchmark工程 -
设置开发者账号
如下图点击benchmark工程,找到工程设置
Signing & Capabilities
,点击Team选项卡选择Add an Account...
-
真机运行
4.1 修改
Bundle Identitifier
如图在现有
Bundle Identifier
后随机添加后缀(限数字和字母),避免个人账户遇到签名冲突。4.2 验证授权
首次运行先利用快捷键
Command + Shift + K
对工程进行清理,再执行快捷键Command + R
运行。如果是首次登陆Apple ID,Xcode会弹框报如下错误,需要在iOS设备上根据提示进行授权验证。一般来说手机上的授权路径为:设置 -> 通用 -> 描述文件与设备管理 -> Apple Development选项 -> 点击信任
参考TNN编译文档 中Android库编译,检查环境是否满足要求。
- adb命令配置
下载安卓SDK工具,将platform-tool
目录加入$PATH
环境变量中。
PS: 如果adb版本过低,可能执行脚本会失败。当前测试的adb版本为:29.0.5-5949299
export PATH=<path_to_android_sdk>/platform-tools:$PATH
在<path_to_tnn>/benchmark/benchmark-model
目录下,将要测试模型的tnnproto放入文件夹,例如,
cd <path_to_tnn>/benchmark/benchmark-model
cp mobilenet_v1.tnnproto .
在脚本benchmark_models.sh
中的benchmark_model_list
变量里添加模型文件名,例如:
benchmark_model_list=(
#test.tnnproto \
mobilenet_v1.tnnproto \ # 待测试的模型文件名
)
./benchmark_models.sh [-32] [-c] [-b] [-f] [-d] <device-id> [-t] <CPU/GPU>
参数说明:
-32 编译32位的库,否则为64位
-c 删除之前的编译文件,重新编译
-b 仅编译,不执行
-f 打印每一层的耗时,否则是整个网络的平均耗时。
-d 如果连接了多个Android设备,则可以通过这个参数指定设备。需要加上<device-id>
-t 指定执行的平台。需要加上<CPU/GPU>
分析整体网络耗时,执行多次,获取平均性能。
执行脚本:
./benchmark_models.sh -c
结果如图: