Keras层中的链接权重

Keras层中的链接权重,keras,Keras,假设我把我的输入分成两个大小相等的部分I1,I2,我想在我的keras网络上有如下结构——I1->A1,I2->A2,然后[A1,A2]->B,其中B是一个输出节点。我可以使用中的组来完成此操作。但是,我想要求I1->A1的连接权重(和其他激活参数)与I2->A2的连接权重(和其他激活参数)相同,即我希望1和2之间对称。(请注意,我不需要[A1,A2]->B的对称性。)如果我正确理解了您的问题,输入_1到A_1和输入_2到A_2的映射已经一个接一个地完成,因为您希望两个输入的映射函数相同。在这种

假设我把我的输入分成两个大小相等的部分I1,I2,我想在我的keras网络上有如下结构——I1->A1,I2->A2,然后[A1,A2]->B,其中B是一个输出节点。我可以使用中的组来完成此操作。但是,我想要求I1->A1的连接权重(和其他激活参数)与I2->A2的连接权重(和其他激活参数)相同,即我希望1和2之间对称。(请注意,我不需要[A1,A2]->B的对称性。)

如果我正确理解了您的问题,输入_1到A_1和输入_2到A_2的映射已经一个接一个地完成,因为您希望两个输入的映射函数相同。在这种情况下,你可以考虑RNN,但是如果你的输入是相互独立的,你可以考虑使用<代码> TimeTimeButtudio。下面的示例将获取两个输入,并使用
稠密
层逐个映射输入,从而共享
稠密
的权重:

from keras.models import Model
from keras.layers import Input, Dense, TimeDistributed, Concatenate, Lambda

x_dim = 5
hidden_dim = 8

x1 = Input(shape=(1,x_dim,))
x2 = Input(shape=(1,x_dim,))

concat = Concatenate(axis=1)([x1, x2])
hidden_concat = TimeDistributed(Dense(hidden_dim))(concat)
hidden1 = Lambda(lambda x: x[:,:1,:])(hidden_concat)
hidden2 = Lambda(lambda x: x[:,1:,:])(hidden_concat)

model = Model(inputs=[x1,x2], outputs=[hidden1, hidden2])
model.summary()

>>>
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_33 (InputLayer)           (None, 1, 5)         0                                            
__________________________________________________________________________________________________
input_34 (InputLayer)           (None, 1, 5)         0                                            
__________________________________________________________________________________________________
concatenate_17 (Concatenate)    (None, 2, 5)         0           input_33[0][0]                   
                                                                 input_34[0][0]                   
__________________________________________________________________________________________________
time_distributed_9 (TimeDistrib (None, 2, 8)         48          concatenate_17[0][0]             
__________________________________________________________________________________________________
lambda_8 (Lambda)               (None, 1, 8)         0           time_distributed_9[0][0]         
__________________________________________________________________________________________________
lambda_9 (Lambda)               (None, 1, 8)         0           time_distributed_9[0][0]         
==================================================================================================
Total params: 48
Trainable params: 48
Non-trainable params: 0

谢谢这正是我想要的。(RNN不适合我的问题,)