Answers:
通过使用功能性API,您可以轻松地在网络的不同部分之间共享权重。在您的情况下,我们有一个作为输入,那么我们将有一个称为shared 的图层。然后我们将有三个不同的层,分别称为sub1,sub2和sub3,然后是三个输出层,分别为out1,out2和out3。Input
Dense
Dense
x = Input(shape=(n, ))
shared = Dense(32)(x)
sub1 = Dense(16)(shared)
sub2 = Dense(16)(shared)
sub3 = Dense(16)(shared)
out1 = Dense(1)(sub1)
out2 = Dense(1)(sub2)
out3 = Dense(1)(sub3)
我们现在可以这样定义模型:
model = Model(inputs=x, outputs=[out1, out2, out3])
它将期望现在有三个元素的元组/列表,每个输出一个。
这些概念可以使您走得更远。假设我们想学习人员层的各个权重,但仍然希望对输出层的线性组合具有相同的权重,我们可以通过执行以下操作来实现:
out = Dense(1)
out1 = out(sub1)
out2 = out(sub2)
out3 = out(sub3)
编辑:串联基本上是您想要做的相反,它将网络的不同部分的输出(中间)粘贴到新层中。您实际上想拆分成多个不同的部分。
model.fit([data1, data2], [labels1, labels2])
,它将被训练(反向传播)成一个模型,对吗?