我应该在哪里定义Keras中自定义激活函数的导数

我应该在哪里定义Keras中自定义激活函数的导数,keras,activation-function,sigmoid,Keras,Activation Function,Sigmoid,我是python、深度学习和神经网络的初学者。我做了自定义激活功能。我想知道的是,当我制作以sigmoid为根的自定义激活函数时,我应该在哪里定义自定义激活函数的导数 我读过关于自动微分的书。但我不确定keras是否会自动衍生出我定制的乙状结肠 keras/activation.py中的自定义激活函数 def tempsigmoid(x, temp=1.0): return K.sigmoid(x/temp) 我的模型 def baseline_model(): # creat

我是python、深度学习和神经网络的初学者。我做了自定义激活功能。我想知道的是,当我制作以sigmoid为根的自定义激活函数时,我应该在哪里定义自定义激活函数的导数

我读过关于自动微分的书。但我不确定keras是否会自动衍生出我定制的乙状结肠

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

可以在同一脚本中定义start的自定义度量

您不需要提供报价单“”,只需写下:

model.add(Dense(num_classes, activation=tempsigmoid))

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


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

感谢您的回复。同一个脚本和master activation.py文件中的自定义激活函数有什么区别?我只是想看到您成功地实现了激活函数,然后才将其移动到另一个脚本谢谢您的回复。哇,你知道自动区分的好读物吗?我知道像chainer这样的其他DL框架没有这种功能。我想知道pytorch的情况。是否有任何文件证明Keras自动获得衍生产品?