我是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
答案 0 :(得分:0)
您可以在同一脚本中定义用于启动的自定义指标。
您不需要提供引号'',您可以简单地写:
model.add(Dense(num_classes, activation=tempsigmoid))
答案 1 :(得分:0)
是的,Keras使用自动区分,因为它仅支持具有此功能的后端(例如TensorFlow)。
因此您完全不需要定义梯度或导数,它将自动为您计算。