markdown PocketFlow导出及部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown PocketFlow导出及部署相关的知识,希望对你有一定的参考价值。

python tools/conversion/export_pb_tflite_models.py --model_dir models_eval/cp_auto_0.5 --enbl_chn_prune True
1. 在对channel-pruned模型进行转pb和tlfite模型时,我们需要对graph进行修改,以去除全零的channel
2. 修改方式有两大类:a) 不考虑前后层关系,仅对单个Conv2D OP进行修改;b) 考虑前后层关系,同时修改多个Conv2D OP以及之间的所有OP(比如FusedBatchNorm、ReLU、Pooling等)
3. 目前PocketFlow中提供了基于前者的修改方式,即通过插入Gather或者1x1 Conv的方式,对单个Conv2D OP进行修改,优点是普适性好,缺点是提速效果一般
4. 我们内部有一个初步的基于后者的修改方式的转换工具,通过检测网络中OP的组合方式,对多个Conv2D OP同时进行修改(比如某个Conv2D OP的input channel被prune掉了一部分,那么在这个OP之前的那个Conv2D OP的output channel也可以对应地进行prune)
5. 如果一个Conv2D OP的输出被两个(或者更多的)Conv2D OP用作输入,那么是没有这种“prune input channel -> prune output channel”的对应关系的(hw:暂时只能插入tf.gather或者1x1conv)

以上是关于markdown PocketFlow导出及部署的主要内容,如果未能解决你的问题,请参考以下文章

markdown PocketFlow ChannelPrune代码详解

markdown PocketFlow压缩框架

markdown转为html及pdf

模型导出与部署Web与模型服务对接逻辑及模型导出

容器和镜像的导入导出及部署

Swagger使用及导出