Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • Paddle-Lite
  • 合并请求
  • !2800

P
Paddle-Lite
  • 项目概览

PaddlePaddle / Paddle-Lite

通知 338
Star 4
Fork 1
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 271
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 78
  • Wiki 0
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
P
Paddle-Lite
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 271
    • Issue 271
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 78
    • 合并请求 78
  • Pages
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 0
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 提交
  • Issue看板

【MODEL UPDATE】Combine params and model !2800

  • Report abuse
!2800 已合并 2月 03, 2020 由 saxon_zh@saxon_zh 创建
#<User:0x00007fede5111928>
  • 概览 23
  • 提交 25
  • 变更 25

Created by: DannyIsFunny

本PR目的:修改Paddle-Lite的模型格式,新的模型格式要求请参考:[设计说明]() 【本PR的修改】:

【1】修改Lite的version,当前代码最后一个commit 不是git log时,将最后一个short commit id作为version : lite/api/version.h.in

【2】修改model_parser.cc模型保存与加载方法: 模型存储: SaveModelNaive方法,修改为保存为单个文件 模型加载: 原来加载方法保存LoadModelNaive、LoadModelNaiveFromMemory(...) 添加新模型的加载方法: LoadModelNaiveFromFile、LoadModelNaiveFromMemory(...)

【3】API接口: paddle_api.cc: MobileConfig添加新接口set_model_from_file、set_model_from_buffer,添加变 lite_model_file和返回值函数lite_model_file() light_api.cc: 重载新的Build函数、和predictor的构造函数(老方法保存)。用于light_api加载新格式的模型 light_api_impl.cc: 修改CreatePredictor(MobileConfig)方法,实现根据MobileConfig的值选择调用老接口、还是新接口。 (当set_model_dir或set_model_buffer后会使用老方法;set_model_from_file、set_model_from_buffer后会使用新方法)

注意:因为发现light_api实际没有加载pb格式模型的接口,本PR在新的light_predictor::build()函数中去除了model_type接口,只加载naive_buffer格式模型。

【4】相关单测修改: model_parser_test.cc light_api_test.cc, cxx_api_test.cc, paddle_api_test.cc, apis_test.cc 其他:subgraph_pass_test.cc (因为调用了SaveOptimizedModel + LoadNaiveModel 过程)

【5】关联模块修改 (因为下面两者都调用了SaveOptimizedModel + LoadNaiveModel过程) benchmark: benchmark.cc model_test: model_test.cc

【6】添加Python接口: pybind.cc中mobileconfig添加接口: set_model_from_buffer和set_model_from_file

【7】添加Java接口: 在MobileConfig.java和convert_util_jni.h中为JavaAPI添加MobileConfig接口: setModelFromFile和setModelFromBuffer 编译时默认不编译Java API,只有当build_java=ON时才编译java预测库。

【8】本PR将模型转化工具名称修改为opt 编译出的二进制文件名为 opt 流程:输入命令: ./lite/tool/build.sh build_optimize_tool 编译结果:build.opt/lite/api/opt 工具使用方法 : ./opt --model_dir= ...

【9】本次修改对预测库体积大小的影响: 经测试:本PR加入前armv8、GCC Android动态库大小:1653528字节,本PR加入后动态库大小1653528字节,对动态库大小没有影响

指派人
分配到
审核者
Request review from
无
里程碑
无
分配里程碑
工时统计
标识: paddlepaddle/Paddle-Lite!2800
Source branch: github/fork/DannyIsFunny/MODEL_UPDATE
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7