首页 Paddle框架 帖子详情
Paddle的BN层能共用么?
收藏
快速回复
Paddle框架 问答深度学习 3105 6
Paddle的BN层能共用么?
收藏
快速回复
Paddle框架 问答深度学习 3105 6

BN层没有可学习的参数,可以只在模型类的__init__()里声明一个对象,在 forward() 方法里重复使用么?

0
收藏
回复
全部评论(6)
时间顺序
AIStudio810258
#2 回复于2020-08

既然 fluid.layers.instance_norm 这样的实例归一化可以直接在 forward() 里使用,BN应该也可以吧

0
回复
AIStudio810258
#3 回复于2020-08

我测试在项目中重复使用不会报错,只是不知道对模型训练有没有什么影响

0
回复
拿剑的泡泡
#4 回复于2021-03

在paddle2.0版本使用说明中的一段话

SubClass 组网
针对一些比较复杂的网络结构,就可以使用Layer子类定义的方式来进行模型代码编写,在__init__构造函数中进行组网Layer的声明,在forward中使用声明的Layer变量进行前向计算。子类组网方式也可以实现sublayer的复用,针对相同的layer可以在构造函数中一次性定义,在forward中多次调用。

0
回复
AIStudio810258
#5 回复于2021-03
在paddle2.0版本使用说明中的一段话 SubClass 组网 针对一些比较复杂的网络结构,就可以使用Layer子类定义的方式来进行模型代码编写,在__init__构造函数中进行组网Layer的声明,在forward中使用声明的Layer变量进行前向计算。子类组网方式也可以实现sublayer的复用,针对相同的layer可以在构造函数中一次性定义,在forward中多次调用。
展开

谢谢,当时困惑了一阵。后来看paddleclas套件里的用法就照抄了~

0
回复
AIStudio810258
#6 回复于2021-03
在paddle2.0版本使用说明中的一段话 SubClass 组网 针对一些比较复杂的网络结构,就可以使用Layer子类定义的方式来进行模型代码编写,在__init__构造函数中进行组网Layer的声明,在forward中使用声明的Layer变量进行前向计算。子类组网方式也可以实现sublayer的复用,针对相同的layer可以在构造函数中一次性定义,在forward中多次调用。
展开

有了文档里的说明更清楚了

0
回复
AIStudio810258
#7 回复于2021-03

当时还看错了,没可学习参数的不是bn,是pool~

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户