machine-learning - 训练后如何用时间分布密集替换嵌入层?

标签 machine-learning nlp neural-network embedding keras

我有以下问题:

  1. 我想使用 LSTM 网络进行文本分类。为了加快训练速度并使代码更清晰,我想在 keras.Tokenizer 上使用 Embedding 层来训练我的模型。

  2. 一旦我训练了我的模型 - 我想计算输出的显着图。输入。为此,我决定用 TimeDistributedDense 替换 Embedding 层。

您知道什么是最好的方法吗?对于一个简单的模型,我可以简单地用已知的权重重建模型 - 但我想让它尽可能通用 - 例如取代 future 的模型结构,并使我的框架尽可能与模型无关。

最佳答案

训练后,您可以使用现有层创建新模型,而不会丢失训练后的信息。创建模型不会覆盖值,它只是重新排列 tensorflow 。例如,如果您的模型如下所示:

# Create model for training, includes Embedding layer
in = Input(...)
em = Embedding(...)
l1 = LSTM(...)
l2 = TimeDistributed(Dense(...))

t_em = em(in)
t_l1 = l1(t_em)
t_l2 = l2(t_l1)

model_train = Model(inputs=[in], outputs=[t_l2])
model_train.compile(...)
model_train.fit(...)

# Create model for salience map, ignores Embedding layer
t_l1 = l1(in)
t_l2 = l2(in)
model_saliency = Model(inputs=[in], outputs=[t_l2])

顺便说一句,TimeDistributedDense 已弃用,请使用 wrappers.TimeDistributed

关于machine-learning - 训练后如何用时间分布密集替换嵌入层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39532572/

相关文章:

tensorflow - 如何使用 tensorflow 执行多标签分类以实现自动标记?

python - 如何计算 Tensorflow Object Detection API 中的对象

python - 从单词列表中提取更多相似的单词

python - 平均形状与输入形状不兼容 - IO.PY 中的 CAFFE 分类错误

algorithm - 如何缩放和加权给定值的适应度?

python - 卷积网络的 Keras 参数

r - 在 R 的插入符包中使用 adaboost

python - TensorFlow 2.0 : Cant run minimal TF Tutorial: TypeError: Can not convert a int64 into a Tensor or Operation

Python 不考虑字符串中的字符 "c"

regex - 使用 Regex 删除括号和其中的所有内容