可以将矩阵作为 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
我正在使用 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