在 Keras 中重用神经网络的一部分(具有共享权重)

数据挖掘 神经网络 深度学习 喀拉斯
2022-03-02 03:55:30

我有一个部分神经网络,有几层各种类型,权重θ; 让我们称之为Fθ; 并且输入和输出数组的维度是相同的,在 Keras 和 Tensorflow 后端实现。在这个框架内,如何训练表单的模型y=Fθ(Fθ(x)),或者更一般的一些n-第一次迭代Fθ? 换句话说,我重用了神经网络的整个子集,具有相同的权重,所以完整的模型更深,但没有比更浅的模型更多的参数。

1个回答

当您使用功能接口构建 Keras 模型时,您还可以通过重用中间函数在通过网络的路径的任何子集上构建其他模型。然后你可以只训练网络的一部分(假设你有输出目标)。我没有尝试在网络的子网络上进行训练,但我确实使用这些中间模型在内部层之间传播激活。顺便说一句,构建在 Keras 之上的 Python 包conx将为您构建这些中间模型。有关更多信息,请参阅:http ://conx.readthedocs.io/en/latest/Getting%20Started%20with%20conx.html?highlight=propagate_from#Propagation-functions