Created by: DannyIsFunny
【问题描述】Paddle-Lite opt转化后的模型中,丢失了 变量的 数据类型 (precision)和shape信息 【本PR工作】
- 使 opt优化出的模型有
precision
和shape
信息- Naive_buffer & protobuf
- 发现问题: opt 转化后的模型会重复保存var_desc信息,导致转化后的model文件变大,本PR修复
以mobilenet_v1为例转化出的naive_buffer格式模型。
- 本PR之前转化后的体积: 17407383 byte
- 本PR修改后体积:17322487 byte
- (体积减少约 0.08M)
【实现方法】 (1) cpp_desc、naive_buffer desc、pb desc 中都实现并对齐 Set&GetDataType() 、Set&GetShape方法
- 修改前: cpp_desc、naive_buffer desc、pb desc 中均有部分实现并未对齐
(2) 修改naive_buffer中var_desc 定义,补充 Tensor_desc成员
【效果】 输出的pb模型与PaddlePaddle输出的模型的信息格式一致,naive_buffer格式的模型中不缺失 shape&precision 信息 【风险】 不向前兼容 合入后不能加载之前opt转化出的模型,会提示缺少shape&precision 信息