Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • Paddle
  • Issue
  • #9629

P
Paddle
  • 项目概览

PaddlePaddle / Paddle
大约 2 年 前同步成功

通知 2325
Star 20933
Fork 5424
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 1423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
  • Wiki 0
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
P
Paddle
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 1,423
    • Issue 1,423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
    • 合并请求 543
  • Pages
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 0
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 提交
  • Issue看板
已关闭
开放中
Opened 4月 04, 2018 by saxon_zh@saxon_zhGuest

fuse batch normalization

Created by: luotao1

Motivation

The batch normalization followed the convolution or fully connected layer can be integrated with them. Doing so will give us a forward acceleration(about 30% in mobilenet) during inference.

Implementation

There are two simple examples:

  • conv without bias: conv->batch_norm->any_other_op should be changed to conv->elementwise_add (bias)->any_other_op
  • conv with bias: conv->elementwise_add (bias)->batch_norm->any_other_op should be changed to conv->elementwise_add (bias)->any_other_op

Thus, there are three~four stages when fusing batch normalization:

  1. insert elementwise_add op, its input is the output of conv (this stage is only for conv without bias)
  2. fuse the batch_norm's parameters to conv and elementwise_add
  3. remove batch_norm ops and its variables which not used in any other ops.
  4. adjust the input of any_other_op to be the output of elementwise_add, and remove unused variables again.

V2 implementation

#6704 by @NHZlX and a demo in mobile repo.

fluid implementation

We plan to use an inference transpiler to implement fuse batch normalization. Before this transpiler, we should implement:

  • insert_op method for stage 1: #9747
  • remove_op method for stage 3: #9384 #9600 #9816
  • remove_var method for stage 4: #9607
指派人
分配到
无
里程碑
无
分配里程碑
工时统计
无
截止日期
无
标识: paddlepaddle/Paddle#9629
渝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