Keras 函数式 API 的语法

Abh*_*aji 5 api syntax functional-programming keras

我对 keras 函数式 API 中的语法如何工作有点困惑。它对于定义复杂的多输入和输出模型非常有用。但语法对我来说有点令人困惑。

new_layer = Conv2d(...)(old_layer)
Run Code Online (Sandbox Code Playgroud)

据我所知 Conv2d 是一个Conv2d()() 语法在python中如何工作?

S.M*_* sh 5

python中实现__call__()方法的每个对象都可以直接调用(你可以看看这个问题本教程)。所有 keras 层都实现了此函数(请参阅源代码),并且该实现应该返回给定输入张量的层的输出。


小智 4

Conv2d(...).(X)相当于:

layer = Conv2d(...)
X = layer(X)
Run Code Online (Sandbox Code Playgroud)

其中layer()相当于layer.__call__(self,....).