prelu()的 tf 代码

    def prelu(self, _x):
        alphas = tf.get_variable('alpha', _x.get_shape()[-1], initializer=tf.constant_initializer(0.0),
                                 dtype=tf.float32)
        pos = tf.nn.relu(_x)
        neg = alphas * (_x - tf.abs(_x)) * 0.5
        return pos + neg

上面这段代码是 prelu 在 tf 中的代码

三个激活函数的描述前面已经说过了,就不多说了,公式是 lrelu 的,lrelu 的 ai 是固定的值,prelu 的 ai 即负值的斜率是根据数据的训练而改变的,实际上是一种数据驱动式的参数设计,这种参数设计是很有启发性的,在诸多 attention 设计中屡见不鲜,rrelu 中的 ai 在训练时是从均匀分布中随机选择的数值,在测试时是固定的。

在代码中 alpha 的写法是值得注意的

alphas = tf.get_variable('alpha', _x.get_shape()[-1], initializer=tf.constant_initializer(0.0),dtype=tf.float32)

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值