python - 如何在 Keras 中强制不同层的权重相等?

标签 python tensorflow keras

在 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/

相关文章:

python - 如何在 PyQt 容器中运行视频?

python - 在每个类的数据集中分割 tensorflow 数据集

python - Keras 参数无效错误

python - 验证损失增加和恒定的训练精度 1D cnn

python flask : No module named requests

python - 如何在谷歌应用引擎中编码我的 url 参数?

python - Matplotlib 艺术家在放大时保持相同大小?

python - 在 Keras 中实现自定义卷积层 - 加载模型时出错

Python 函数不返回

python - Keras 只训练特定的输出