为啥有的Keras函数后两个(),能不能从函数的角度解释下?
很简单,Dense 等类都是基于 Layer 类的,参考class Dense(Layer),因此我们可以看看 Layer 这个类是怎么写的。
在 Layer 这个类里面,有这样一个函数:def __call__(self, inputs, **kwargs):,这个函数可以在 Python 的文档中查到:3. Data model - Python 3.6.5rc1 documentation,通过定义这个函数,我们可以让一个对象可以当函数用。因此我们可以把下面的代码拆成这样:x = Dense(64, activation=\u0026#39;relu\u0026#39;)(x)fc = Dense(64, activation=\u0026#39;relu\u0026#39;)x = fc(x)相信拆成下面的形式,你就可以看懂了,首先构建了一个全连接层(fc),括号里面写的是全连接层的参数。然后对 x 进行全连接操作,输入原张量,输出新张量。
■网友
【为啥有的Keras函数后两个(),能不能从函数的角度解释下?】 Dense(64, activation=\u0026#39;relu\u0026#39;) 执行_init函数用于初始化得到一个类,然后调用对执行类的__call__函数,x = Dense(64, activation=\u0026#39;relu\u0026#39;)(inputs),然后得到输出.
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 孕产妇|孕期皮肤瘙痒——20%准妈妈都有的困扰
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 为啥到现在你还没有女朋友 ?
