解释keras代码段

时间:2018-01-02 06:31:26

标签: keras keras-layer

我有这段代码:

from keras.models import Model
from keras.layers import Input, Dense

a = Input(shape=(32,))
b = Dense(32)(a)
<{>} Dense(32)(a)我知道我们正在创建keras.layers.Dense个对象,但我们创建的(a)部分与Dense(32)对象有什么关系?

python如何在内部理解它?

1 个答案:

答案 0 :(得分:4)

部分b = Dense(32)(a)创建一个Dense图层,接收张量a作为输入。这样做是为了允许使用具有不同输入的相同密集层(即允许共享权重)。

例如,请考虑以下代码段:

from keras.models import Model
from keras.layers import Input, Dense

a = Input(shape=(32,))
b = Input(shape=(32,))
dense = Dense(32)
c = dense(a)
d = dense(b)

这里,dense = Dense(32)实例化一个Dense层,它是可调用的。您可以将其视为创建一个可以在不同输入上调用的函数(即c = dense(a)d = dense(b))。这提供了一种非常方便的权重共享方式。