我正在尝试创建一个自定义图层以合并网络的两个不同分支:
输出= alpha A + beta B
其中A和B是每个分支的输出向量,而alpha和beta是可训练的向量参数。
在Keras Guide之后,我写了这个自定义层:
class MergeTwo(keras.layers.Layer):
def __init__(self, nout, **kwargs):
super(MergeTwo, self).__init__(**kwargs)
alpha = tf.zeros_initializer()
beta = tf.zeros_initializer()
self.alpha = tf.Variable(initial_value=alpha(shape=(nout,)),dtype='float32',trainable=True)
self.beta = tf.Variable(initial_value=beta(shape=(nout,)),dtype='float32',trainable=True)
def call(self, inputs):
A, B = inputs
result = keras.layers.add([self.alpha*A ,self.beta*B])
return result
对吗?
我想为alpha和beta设置激活功能(tanh)。我该怎么办?
谢谢!