我正在解析 Python 代码,但我不明白函数调用 x_class = Convolution2D(num_anchors, (1, 1), activation='sigmoid', kernel_initializer='uniform', name='rpn_out_class')(x)方法
也就是说,函数调用看起来像:x_class = Convolution2D(params)(x)
我还没有在其他语言中看到过这样的结构。(参数) - 这是可以理解的,但为什么第二个括号带有 X?或者只是告诉我这种设计的名称 - 我会按名称查找它。
在 Python 中,函数是一个成熟的对象,既可以作为参数传递,也可以(在这种情况下)作为值返回。
即 Convolution2D(params) 内部根据传入的参数构造一些函数并将其作为结果返回,立即使用 x 参数调用该函数。并且调用第二个函数的结果已经写在 x_class 中了。
也许这个简化的例子会帮助你更好地理解它是如何工作的: