美文网首页深度学习
47.现有移动端开源框架及其特点—Prestissimo

47.现有移动端开源框架及其特点—Prestissimo

作者: 大勇任卷舒 | 来源:发表于2023-04-11 15:32 被阅读0次

基础功能

  • 支持卷积神经网络,支持多输入和多分支结构
  • 精炼简洁的API设计,使用方便
  • 提供调试接口,支持打印各个层的数据以及耗时
  • 不依赖任何第三方计算框架,整体库体积 500K 左右(32位 约400k,64位 约600k)
  • 纯 C++ 实现,跨平台,支持 android 和 ios
  • 模型为纯二进制文件,不暴露开发者设计的网络结构

极快的速度

  • 大到框架设计,小到汇编书写上全方位的优化,iphone7 上跑 SqueezeNet 仅需 26ms(单线程)
  • 支持浮点(float)和整型(int)两种运算模式,float模式精度与caffe相同,int模式运算速度快,大部分网络用int的精度便已经足够
  • 以巧妙的内存布局提升cpu的cache命中率,在中低端机型上性能依然强劲
  • 针对 float-arm32, float-arm64, int-arm32, int-arm64 四个分支均做了细致的优化,保证arm32位和arm64位版本都有非常好的性能

SqueezeNet-v1.1 测试结果

Note: 手机测试性能存在一定的抖动,连续多次运算取平均时间

Note: 像华为mate8, mate9,Google nexus 6 虽然是64位的CPU,但测试用的是 32位的库,因此cpu架构依然写 arm-v7a

CPU架构 机型 CPU ncnn(4线程) mdl Prestissimo_float(单线程) Prestissimo_int(单线程)
arm-v7a 小米2 高通APQ8064 1.5GHz 185 ms 370 ms 184 ms 115 ms
arm-v7a 小米2s 四核 骁龙APQ8064 Pro 1.7GHz 166 ms - 136 ms 96 ms
arm-v7a 红米Note 4x 骁龙625 四核2.0GHz 124 ms 306 ms 202 ms 110 ms
arm-v7a Google Nexus 6 骁龙805 四核 2.7GHz 84 ms 245 ms 103 ms 63 ms
arm-v7a Vivo x6d 联发科 MT6752 1.7GHz 245 ms 502 ms 370 ms 186 ms
arm-v7a 华为 Mate 8 海思麒麟950 4大4小 2.3GHz 1.8GHz 75 ms 180 ms 95 ms 57 ms
arm-v7a 华为 Mate 9 海思麒麟960 4大4小 2.4GHz 1.8GHz 61 ms 170 ms 94 ms 48 ms
arm-v8 iphone7 Apple A10 Fusion 2.34GHz - - 27 ms 26 ms

未开放特性

  • 多核并行加速(多核机器可以再提升30%-100% 的速度)
  • depthwise卷积运算(支持mobilenet)
  • 模型压缩功能,压缩后的模型体积可缩小到20%以下
  • GPU 运算模式(Android 基于opengl es 3.1,ios 基于metal)

同类框架对比

框架 caffe tensorflow mdl-android mdl-ios ncnn CoreML Prestissimo
计算硬件 cpu cpu cpu gpu cpu gpu cpu (gpu版本未开放)
计算速度 很快 很快 极快 极快
库大小 较大 中等
兼容性 限ios8以上 很好 仅支持 ios11 很好
模型支持度 很好 - 差(仅限指定模型) 较好 - 中等(当前版本不支持mobilenet)

使用方法-模型转换

  • 绝影支持的是私有的模型文件格式,需要把 caffe 训练出来的模型转换为 .prestissimo 格式,模型转换工具为 caffe2Prestissimo.out
  • caffe2Prestissimo.out 依赖 protobuf 3.30
  • 将 XXX.prototxt 和 YYY.caffemodel 转化为 Prestissimo 模型 ZZZ.prestissimo:(得到)./caffe2Prestissimo.out XXX.prototxt YYY.caffemodel ZZZ.prestissimo

大数据视频推荐:
网易云课堂
CSDN
人工智能算法竞赛实战
AIops智能运维机器学习算法实战
ELK7 stack开发运维实战
PySpark机器学习从入门到精通
AIOps智能运维实战
腾讯课堂
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

相关文章

  • mac 配置appium环境

    appium是移动端的一个开源测试框架,由于跨平台、支持多语言等特点,使其在移动端自动化领域不断地发展壮大。以...

  • appium(二) 简介

    appium 简介 appium 是开源的移动端自动化测试框架; appium 可以测试原生的、混合的、以及移动端...

  • 豆瓣的混合开发框架Rexxar开源

    第93期:豆瓣的混合开发框架Rexxar开源 深度讨论 豆瓣的混合开发框架Rexxar开源 一个针对移动端的混合开...

  • 2018年计划

    移动端:Android:学会kotlinweb端: 前端学会Vue及其几个框架服务端:Laravel提高一个入门级别吧

  • Uber RIBs框架源码分析

    Uber最近开源了他们的移动端框架RIBs,RIBs是一个跨平台框架,支持着很多Uber的移动应用。RIBs这个名...

  • 非移动端开发也需要知道的一点小知识,Dart语言四不像(一)

    一直做web端开发,还没做过针对安装在手机端的移动应用,flutter是google推出并开源的移动应用开发框架,...

  • 2019-05-06

    技术工具: 移动端:Flutter 是 Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发...

  • weex开发demo记录

      weex是阿里2016年开源的一套跨移动端(Andriod/IOS/Wap)的前端框架,三端合一,采用VUE入...

  • Ionic 部署

    Ionic 是一款开源的Html5移动App开发框架,是AngularJs移动端解决方案,Ionic以流行的跨平台...

  • OkHttp3源码解析(一)——整体框架

    目录 一 、简介及框架 OkHttp是安卓端最火热的轻量级网络框架,由移动支付Square公司开源,用于替代Htt...

网友评论

    本文标题:47.现有移动端开源框架及其特点—Prestissimo

    本文链接:https://www.haomeiwen.com/subject/vhtuddtx.html