Keras功能API,手动将权重设置为图层 [英] Keras function api, setting weight manually to a layer
本文介绍了Keras功能API,手动将权重设置为图层的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在keras顺序模型中,可以使用set_weights
方法直接设置权重.
In keras Sequential model, one can set weight directly using set_weights
method.
model.layers[n].set_weights([your_wight])
但是,如果我尝试使用功能性API设置图层权重,就会遇到问题.
However I am facing problem if I am trying to set weight to a layer using functional API.
这是代码段:
emb = Embedding(max_words, embedding_dim, input_length=maxlen)(merge_ip)
#skipping some lines
.
.
emb.set_weights([some_weight_matrix])
这引发了错误
AttributeError: 'Tensor' object has no attribute 'set_weights'
我认为是因为emb
是一个Tensor对象.
which I think becouse emb
is a Tensor object.
我想知道如何在模型中正确设置体重
I am wondering how to set wight properly in my model
推荐答案
如果要在嵌入"层上设置权重,可以将其添加到构造函数中,如下所示:
If you want to set the weights on Embedding layers you might add them to the constructor like this:
from keras.layers import Embedding
embedding_layer = Embedding(len(word_index) + 1,
EMBEDDING_DIM,
weights=[embedding_matrix],
input_length=MAX_SEQUENCE_LENGTH,
trainable=False)
https://blog .keras.io/using-pre-trained-word-embeddings-in-a-keras-model.html
稍后,您可以移交merge_ip
:
x = embedding_layer(merge_ip)
这篇关于Keras功能API,手动将权重设置为图层的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文