g_p*_*g_p 1 python neural-network keras tensorflow
在 keras Sequential 模型中,可以直接使用set_weights方法设置权重。
model.layers[n].set_weights([your_wight])
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用功能 API 为图层设置权重,我将面临问题。
这是代码片段:
emb = Embedding(max_words, embedding_dim, input_length=maxlen)(merge_ip)
#skipping some lines
.
.
emb.set_weights([some_weight_matrix])
Run Code Online (Sandbox Code Playgroud)
这是抛出错误
AttributeError: 'Tensor' object has no attribute 'set_weights'
Run Code Online (Sandbox Code Playgroud)
我认为因为emb是一个 Tensor 对象。
我想知道如何在我的模型中正确设置 wight
如果你想在嵌入层上设置权重,你可以像这样将它们添加到构造函数中:
from keras.layers import Embedding
embedding_layer = Embedding(len(word_index) + 1,
EMBEDDING_DIM,
weights=[embedding_matrix],
input_length=MAX_SEQUENCE_LENGTH,
trainable=False)
Run Code Online (Sandbox Code Playgroud)
https://blog.keras.io/using-pre-trained-word-embeddings-in-a-keras-model.html
稍后你可以交出merge_ip:
x = embedding_layer(merge_ip)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1250 次 |
| 最近记录: |