我正在创建自定义的激活功能,尤其是RBF激活功能:
from keras import backend as K
from keras.layers import Lambda
l2_norm = lambda a,b: K.sqrt(K.sum(K.pow((a-b),2), axis=0, keepdims=True))
def rbf2(x):
X = #here i need inputs that I receive from previous layer
Y = # here I need weights that I should apply for this layer
l2 = l2_norm(X,Y)
res = K.exp(-1 * gamma * K.pow(l2,2))
return res
Run Code Online (Sandbox Code Playgroud)
该函数rbf2接收上一层作为输入:
#some keras layers
model.add(Dense(84, activation='tanh')) #layer1
model.add(Dense(10, activation = rbf2)) #layer2
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能获得输入layer1和权重layer2以创建定制的激活功能?
我实际上想做的是为LeNet5神经网络实现输出层。LeNet-5的输出层有点特殊,而不是计算输入和权重向量的点积,每个神经元输出其输入向量与其权重向量之间的欧几里得距离的平方。
例如,layer1 …
python machine-learning conv-neural-network keras activation-function