Keras功能API的语法
我有点困惑于keras函数式API的语法是如何工作的。 它对于定义复杂的多输入和输出模型非常有用。 但语法对我来说有点令人费解。
new_layer = Conv2d(...)(old_layer)
据我所知Conv2d是一个类 。 Conv2d()()语法在Python中如何工作?
Conv2d(...).(X)
相当于:
layer = Conv2d(...)
X = layer(X)
其中layer()
相当于layer.__call__(self,....)
。
可以直接调用实现__call__()
方法的python中的每个对象(可以看看这个问题或本教程)。 所有keras图层都实现此功能(请参阅源代码),并且实现应该返回给定输入张量的图层的输出。