在 Keras 模型训练过程中,有没有办法强制不同层的权重相等? 更清楚地说,如果我有一个像这样 5 层的模型:
inputlayer = Dense(units=40, activation='relu', input_dim=20)
hidden1 = Dense(units=40, activation='relu')(inputlayer)
hidden2 = Dense(units=5,activation='relu')(hidden1)
hidden3 = Dense(units=40,activation='relu')(hidden2)
hidden4 = Dense(unites=40,activation='relu')(hidden3)
outputlayer = Dense(units=20,activation='relu')(hidden4)
我希望输入层和输出层的权重绑定(bind)在一起,对于隐藏层 1 和隐藏层 4、隐藏层 2 和隐藏层 3 来说也是如此。我意识到它们的尺寸是不同的,即输入层是(20,40)而输出层是(40,20),所以我需要一种方法来实例化这些层,以便它们的权重被绑定(bind)但也被转置。我怎样才能做到这一点?谢谢
最佳答案
这对于函数式 API 来说非常简单,您只需要做:
layer = Dense(units=40, activation='relu', name="one")
n1 = layer(someInput)
n2 = layer(someOtherInput)
您创建该层的一个实例,然后为其提供两个不同的输入。当您调用该层两次时,两个实例具有相同的权重。
关于python - 如何在 Keras 中强制不同层的权重相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48950745/