温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Where should i define derivative from custom activation function in Keras
activation-function keras sigmoid

其他 - 我应该在哪里定义Keras中自定义激活函数的派生

发布于 2020-04-05 23:57:36

我是python,深度学习和神经网络的初学者。我做了自定义激活功能。我想知道何时从Sigmoid生成定制激活函数,我应该在哪里定义定制激活函数的导数?

我尝试阅读有关自动差异的文章。但是我不确定keras是否会自动派生我的自定义Sigmoid吗?

我在keras / activation.py中的自定义激活功能

def tempsigmoid(x, temp=1.0):
    return K.sigmoid(x/temp)

我的模特

def baseline_model():
    # create model
    model = Sequential()
    model.add(Conv2D(101, (5, 5), input_shape=(1, 28, 28), activation='relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.2))
    model.add(Flatten())
    model.add(Dense(128, activation='relu'))
    model.add(Dense(num_classes, activation='tempsigmoid'))
    # Compile model
    model.compile(loss='mse', optimizer='adam', metrics=['accuracy'])
    return model

查看更多

提问者
astri
被浏览
116
Matias Valdenegro 2019-04-24 16:04

是的,Keras使用自动区分,因为它仅支持具有此功能的后端(例如TensorFlow)。

因此,您完全不需要定义梯度或导数,它将自动为您计算。