如何解决双泄漏relu自定义激活功能tf 2.5.0
我正在尝试创建一个与值
我有一个似乎可以工作的实现,但它比正常的泄漏 relu 慢了大约 50%。所以我认为一定有更好的方法。
这是一个最小的例子:
##############################################################################
import tensorflow as tf
import tensorflow.keras as ke
import tensorflow.keras.layers as l
##############################################################################
def myRelu(x):
return tf.where(x<0,x*0.1,tf.where(tf.math.logical_and(x>=0,x<=1),x,0.9+x*0.1))
##############################################################################
def build_model_1():
model_input = l.Input(shape=(None,365,15,26,2))
x = l.Dense(1,activation='linear')(model_input)
x = l.Lambda(myRelu)(x)
# x = l.Activation(myRelu)(x) # or this
model = ke.Model(inputs=[model_input],outputs=[x])
model.compile(optimizer='Adam',loss='mean_squared_error')
return model
##############################################################################
我已经在互联网上搜索了几个小时,但我还没有找到简单或明确的解决方案。我知道标准的 tf.keras.layers.ReLU 支持一个 max_value,我可以将其设置为 1,但我试图避免这种情况以避免死 relu 问题。
我希望有人能帮助我或为我指明正确的方向。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。