Keras功能API,手动将权重设置为图层 [英] Keras function api, setting weight manually to a layer

查看:100
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆