我看过如下代码:
embed_word = Embedding(params['word_voc_size'], params['embed_dim'], weights=[word_embed_matrix], input_length = params['word_max_size']
, trainable=False, mask_zero=True)
当我在Keras网站[https://faroit.github.io/keras-docs/2.1.5/layers/embeddings/][1]
中查找文档时我没有看到权重参数,
keras.layers.Embedding(input_dim, output_dim, embeddings_initializer='uniform', embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None)
所以我很困惑,为什么我们可以使用Keras文档中未定义的参数权重?
我的keras版本是2.1.5。希望有人能帮助我。
答案 0 :(得分:3)
Keras的Embedding
层是Layer
类的子类(每个Keras层都这样做)。 weights
属性是在此基类中实现的,因此每个子类都可以通过weights
参数设置此属性。这也是为什么您无法在文档或Embedding
层本身的实现中找到它的原因。
您可以检查基本层实现here(对于“ weight”,按Ctrl + F)。