batch_norm, fuse_with_relu, 与act参数互斥,不能用户同时使用
Created by: luotao1
用户问题
- 请教一下,paddle中的fluid.layers.batch_norm(),函数 中act这个参数有用吗?设置为 act=‘relu’,那么意味着bn层后面接了relu吗
- 答:是的
- 追问:是不是一定要act设置完之后,在设置这个fuse_with_relu 。。如果不设置fuse_with_relu,那么只设置act,是不是就不起作用。。
- 答:我理解这个地方如果使用应该是把relu fuse进去了,而直接用act是另外接了了一个relu op
- 追问:意思是 同时使用这两个参数,act=relu,fuse_with_relu=True..那么就是后面接了两次 relu吗??
- 答:刚咨询了下相关同学,这个fuse只在预测用,训练的话还是用act,这个接口需要改进下
- 追问:我这有一个疑问,我看nn.py中 batch_norm()源码,里面act设置与否,后面都没有使用,感觉是一个多余的参数。
- 答:解释了下代码
- 追问:那预测的时候 是不是就要设置 act为None,fuse_with_relu=True ??
- 答:如果不考虑 mkldnn 的话,只使用act这个参数就好了,训练和预测一样
总结
- batch_norm中
fuse_with_relu
只用于mkldnn的预测,是否不应该暴露给用户? @bingyanghuang @jianhang-liu #11434 加了这个参数。