keras中的继承与合成-为什么从网络继承模型

时间:2018-07-18 16:57:16

标签: design-patterns keras deep-learning

嗨,我正在尝试为自己的特定领域建立自己的深度学习框架,而keras的作者@fchollet的this post对我有很大帮助。但是我对keras的一个特定设计决策有一个疑问,即Model是从Network继承的类。

如果我负责设计框架,则可能会使用Network作为Model的一个组件,而不是父类。我了解这与"composition over inheritance"的经典原理有关。我只是想知道为什么在这种情况下keras选择继承而不是合成。是否因为网络未在其他地方用作组件? (换句话说,模型是顶层抽象吗?)

欢迎任何评论。谢谢!

1 个答案:

答案 0 :(得分:0)

我真的不能说“为什么”。这是创作者的低级/隐藏级决策。

但是我可以说,在以常规方式使用Keras时,切勿显式使用Network对象。

我们主要使用LayerModel和来自各自背景的张量。我们使用了其他对象,但从未使用过Network

因此,为了理解为什么Model源自Network的原因,您需要对所有隐藏的源代码有深入的了解。