4

keras 中 Layer 类的每个派生类都有build()定义。

build()是我们为 keras 层分配权重的地方。

什么时候在内部调用这个函数?我找不到任何可能调用它的代码

topology.py:580__call_()的 Layer 类中,我们调用但它只会在. 这总是设置的,只有当 self.built 为 True 时才会调用它。self.build()self.built = Trueself.build()

4

1 回答 1

1

您错过not了条件(源代码):

if not self.built:
  ...
  if len(input_shapes) == 1:
    self.build(input_shapes[0])
  else:
    self.build(input_shapes)

...这基本上意味着“如果还没有就构建”。

顺便说一句,build()在方法中也被调用count_params(),再次带有警卫(源代码)。

于 2018-01-07T23:05:51.047 回答