什么时候内核在Keras中初始化?

时间:2017-11-03 22:50:10

标签: deep-learning keras

我正在使用Keras功能API,我想知道:什么时候内核初始化了?是在创建图层期间,如

x = Dense(32, kernel_initializer='glorot_uniform')(x)

还是在编译模型的过程中? e.g。

model.compile(optimizer='rmsprop', loss='categorical_crossentropy')

我想这不是在model.fit(...)期间,或者我无法微调预先训练过的模型,因为先前的权重会丢失。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

事实证明,Layer超类定义了方法build(input_shape),所有具有权重的派生类(例如DenseConv2D)必须实现。在该方法中,除了别的之外,还创建并初始化权重变量。这个build实际上是由Layer方法__call__调用的,这是行中调用的方法

x = Dense(32, kernel_initializer='glorot_uniform')(x)

在构造函数__init__之后。

参考:https://github.com/fchollet/keras/blob/master/keras/engine/topology.py