什么时候在keras的源代码中调用了Layer.build()?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么时候在keras的源代码中调用了Layer.build()?相关的知识,希望对你有一定的参考价值。

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

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

该函数何时在内部调用?我无法找到任何可能正在调用它的代码

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

答案

在条件(source code)中你错过了if not self.built: ... if len(input_shapes) == 1: self.build(input_shapes[0]) else: self.build(input_shapes)

build()

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

顺便说一句,count_params()也被称为source code方法,再次与一名后卫(qazxswpoi)。

以上是关于什么时候在keras的源代码中调用了Layer.build()?的主要内容,如果未能解决你的问题,请参考以下文章

Keras保存最好的模型

基于sklearn和keras的数据切分与交叉验证

keras中的Flatten和Reshape

在子类 tf.keras.Model 的调用方法中使用 GRUCell 进行 For 循环

Keras中维度报错

在 R 中为 keras 调用 fit() 时出现奇怪的错误