我想构建2个具有不同辍学模型的解码器副本,但是这些层应该共享权重,如何用keras做到这一点?
我知道如何与keras API(https://keras.io/getting-started/functional-api-guide/#shared-layers)共享一个图层,但是我想要2组图层,因为我想保留不同的辍学对象,但是它们应该具有相同的权重。
我想实现这种架构。
Conv
Pool
droupout1 droupout2
FC1 FC2
softmax1 softmax2
out
答案 0 :(得分:1)
通过Keras Functional API,这很容易,我假设您想在FC1和FC2之间共享权重:
pool_out = SomePoolingLayer()(input_tensor)
shared_fc = Dense(neurons, activation='softmax')
drop1 = Dropout(0.5)(pool_out)
drop2 = Droput(0.5)(pool_out)
fc1 = shared_fc(drop1)
fc2 = shared_fc(drop2)
out = somehow_merge()([fc1, fc2])
somehow_merge
可以是任何功能合并功能,例如串联或平均值。