cd /path/to/mace
# Build library
# output lib path: builds/lib
bash tools/bazel_build_standalone_lib.sh
开始编译,出现Build completed successfully 表示编译成功。
(4) 生成C++代码
首先修改文件,修改mace-models/mobilenet-v2下的mobilenet-v2.yml和mobilenet-v2-host.yml文件,把
model_graph_format: file
model_data_format: file
model_graph_format: code
model_data_format: code
然后转换文件
python tools/converter.py convert --config=/MACE/mace-models/mobilenet-v2/mobilenet-v2.yml
输出如下:
我们可以看到在路径 builds/lib 下里面的文件夹里面生成的 .so 文件,这正是我们需要的库文件,为后期的Android 的JNI调用做准备。C++的头文件在build/mobilenet-v2/include/mace/public 目录下。
3. 生成Android的apk文件
(1) 在/MACE/mace/mace/examples/ 目录下看到android文件夹,这个就是AndroidStudio模板工程,其中是不完善的,缺少相关的lib, model 和 head file,需要添加进来。 需要执行build.sh进行编译和拷贝。
cd mace/exampls/android
./build.sh dynamic
# if libmace.a is needed, update `macelibrary/CMakeLists.txt` and run with `./build.sh static`.
出现下面的提示,说明编译成功了:
(2) 安装apk到手机
# running after build step and in `mace/exampls/android` directory
adb install ./app/build/outputs/apk/app/release/app-app-release.apk
(3) 运行apk
记得给app相机使用权限,在AndroidStudio上第一次调试有闪退现象,自己再重新打开app就可以了,运行的是物体识别的模型。
好了,深度学习模型就部署到手机端了~哈哈哈
当然,编译过程中也遇到一些坑,我都一一解决了,写了篇博客记录了一下,避免以后采坑:MACE在Android手机上部署深度学习模型——采坑记录
参考:https://blog.csdn.net/u012505617/article/details/85763065
1. MACE的环境搭建 参考我的博客:MACE的环境搭建——conda实现2. 构建项目 (1)下载MACE项目到本地git clone https://github.com/XiaoMi/mace.git (2) 下载MACE Model Zoo 项目git clone https://github.com/XiaoMi/mace-models.git (3) 编译MACE生成库文件 /path/to/mace...
平时学习-工作总结,有两个方向:
其一是Android开发方向
其二是Linux平台开发方向,包括Opencv图像处理,深度学习框架Tensorflow使用,C/C++,python开发
ImgProc-c++是一个c/c++工程,主要是结合opencv和tensorflow进行一些图片处理
ImgProc-python是图片处理的python实现
tensorflow目录是python工程,主要是使用python对深度学习框架tensorflow进行研究和开发
Android开发在windows平台,其它的则在linux平台(ubuntu18)
深度学习模型 Pytorch Densenet 安卓移动端开发安卓app开发调用深度学习模型新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
安卓app开发调用深度学习模型
你好! 这是你第一次使用 Markdown编辑器
本文来解析一下MACE中1*1卷积的实现。1*1卷积在CNN中是比较特殊的一种操作,不再强调领域操作,一般用到1*1卷积有以下几种情况(相互之间不独立)
1.单纯的加强非线性映射,不强调领域CNN的特征提取功能
2.bottleneck结构中进行特征图数量的改变
3.depthWise 卷积中组成部分
本文涉及的源代码文件
mace/mace/kernels/arm/...
自从 AlphaGo 出现以来,机器学习无疑是当今最火热的话题,而深度学习也成了机器学习领域内的热点,现在人工智能、大数据更是越来越贴近我们的日常生活,越来越多的人工智能应用开始在移植到移动端上,那能够快速高效地在移动端部署深度学习模型就变成亟待解决的问题了。
现阶段 app 上使用的深度学习主要有两种模式:
Online 方式
首先在移动端做初步预处理,然后把数据传到服务器进行预测后返回移...
RuntimeError: Sizes of tensors must match except in dimension 1. Got 61 and 60 in dimension 2
18940