Допустим, у вас есть массивы предложений фиксированной длины, и, как вы упомянули, количество предложений во всех массивах одинаково. Поэтому, если вы сохраните все свои данные в одном тензорном файле, они будут иметь форму (num_of_arrays, num_of_sentences, length_of_sentence)
. И каждый массив предложений имеет свою метку. Таким образом, в основном ваша модель должна принимать массив предложений в качестве входных данных и предсказывать метку для нее. Теперь, чтобы использовать слой внедрения, мы сначала изменяем наши данные, затем передаем их слою внедрения, а затем (если необходимо) мы изменяем их обратно. Вот пример:
from keras import models, layers
# the following numbers are just for demonstration
vocab_size = 1000
embed_dim = 50
num_arrays = 100
num_sentences = 200
len_sentence = 300
model = models.Sequential()
model.add(layers.Reshape((num_sentences*len_sentence,), input_shape=(num_sentences, len_sentence)))
model.add(layers.Embedding(vocab_size, embed_dim, input_length=num_sentences*len_sentence))
model.add(layers.Reshape((num_sentences, len_sentence, embed_dim)))
# add whatever layers as you wish to complete your model
model.summary()
Вот краткое описание модели:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
reshape_1 (Reshape) (None, 60000) 0
_________________________________________________________________
embedding_1 (Embedding) (None, 60000, 50) 50000
_________________________________________________________________
reshape_2 (Reshape) (None, 200, 300, 50) 0
=================================================================
Total params: 50,000
Trainable params: 50,000
Non-trainable params: 0
_________________________________________________________________
Как видите, каждое из предложений в массиве теперь представлено матрицей формы (sentence_length, embed_dim)
. Теперь вы можете добавить больше слоев для завершения вашей модели. Я не уверен, что это то, что вы просили. Дайте мне знать в комментариях, если вы имели в виду что-то еще.