Skip to main content
 首页 » 编程设计

python之在 Keras 中使用 'selu' 激活函数时出错

2025年05月04日9soundcode

我正在使用 Keras 和 Tensorflow 后端。当我尝试使用“selu”激活函数时:

model.add(Dense(32, input_shape=(input_length - 1,))) 
model.add(Activation('selu')) 

我得到的错误是:

ValueError: Unknown activation function:selu 

有什么解决办法吗?

请您参考如下方法:

Selu 不在您的 keras 的 activations.py 中(很可能是因为它是在 2017 年 6 月 14 日,仅 22 days 之前添加的)。您可以只添加 missing code在 activations.py 文件中或在脚本中创建您自己的 selu 激活。

示例代码

from keras.activations import elu 
 
def selu(x): 
    """Scaled Exponential Linear Unit. (Klambauer et al., 2017) 
    # Arguments 
        x: A tensor or variable to compute the activation function for. 
    # References 
        - [Self-Normalizing Neural Networks](https://arxiv.org/abs/1706.02515) 
    """ 
    alpha = 1.6732632423543772848170429916717 
    scale = 1.0507009873554804934193349852946 
    return scale * elu(x, alpha) 
 
model.add(Dense(32, input_shape=(input_length - 1,)), activation=selu) 

注意:

包含 tensorflow 2.0 keras。您可以通过以下方式获得 selu 激活:

from tensorflow.keras.activations import selu