2017-07-06 48 views
1

我使用Keras和Tensorflow後端。當我試圖使用使用「九色鹿」激活功能:與Keras使用'selu'激活功能的錯誤

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

我得到的錯誤是:

ValueError: Unknown activation function:selu 

是否有任何解決這個?

+0

該錯誤消息是不言自明的,Keras找不到與''selu''name任何激活功能。根據提交歷史,selu激活函數在不久之前就被添加了,所以我猜你的Keras版本沒有它,並且更新到最新版本應該可以解決你的問題。 –

+0

試圖更新keras,anaconda和tensorflow,它們都似乎是最新的。我的keras版本是2.0.5。還有其他建議嗎? –

回答

8

Selu不在您的keras activations.py(很可能是因爲它是2017年6月14日添加的,僅在22 days之前)。您只需在activations.py文件中添加missing code或在腳本中創建您自己的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) 
+0

謝謝,我將函數添加到activation.py,現在它工作:) –