可以将矩阵作为 Keras 嵌入层的输入吗?

Can a matrix be given as input to Keras's embedding layer?

我正在使用 Keras 来捕获数据集的语义信息。我已经将数据标记为整数向量。它有这样的形式:

texts=[[1,2,3,2,1],
       [2,3,4,2,2],
       [3,33,2,1,3]]

labels=[1,0,1]

并且标签只包含0或1,每个列表包含一个标签。 我想使用 Keras 的嵌入层来嵌入它。但是网上的例子只包含一个列表:

texts=[1,2,3,4,2,1]

我想知道我可以输入一个矩阵到嵌入层吗?

texts列表中的每个列表都是一个训练样本,labels列表中的每个列表都有一个对应的标签。因此,每个训练样本只是一个整数向量(即单词索引),您可以轻松地将其提供给嵌入层:

inp = Input(shape=(num_words_per_sample,))
x = Embedding(vocab_size, emb_dim)(inp)

请注意,您可能需要将训练数据和标签转换为 numpy 数组(如果尚未转换):

import numpy as np
texts = np.array(texts)
print(texts.shape)  # (3,5)  <--- three samples each containing 5 words

labels = np.array(labels)
print(labels.shape) # (3,)   <--- three labels, one for each sample