0

我正在尝试Embedding在 Keras 中创建一个图层。

我的输入大小是 3d: (batch, 8, 6),我想嵌入最后一个维度。
所以嵌入应该像(batch*8, 6)->embedding output

但我不想batchsize在所有学习步骤中都保留这个,只是为了嵌入层。

我认为解决方案之一是分离 8 个输入并将嵌入应用于每个输入。
但是这个嵌入层与一个大的嵌入层不同。

有没有可能的解决方案?谢谢!

4

1 回答 1

1

解决方案非常简单:

input_shape = (8,6)

并通过嵌入。你会得到你想要的。


一个完整的工作示例:

from keras.layers import *
from keras.models import *

ins = Input((8,6))
out = Embedding(10, 15)(ins)
model = Model(ins, out)
model.summary()

其中 10 是字典大小(单词或类似词的数量),15 是嵌入大小(结果维度)。

结果总结:

Model: "model_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         (None, 8, 6)              0         
_________________________________________________________________
embedding_1 (Embedding)      (None, 8, 6, 15)          150       
=================================================================
Total params: 150
Trainable params: 150
Non-trainable params: 0
_________________________________________________________________
于 2019-12-27T01:54:38.457 回答