Можно ли дать матрицу в качестве входных данных для слоя встраивания Кераса? - PullRequest
0 голосов
/ 05 ноября 2018

Я использую 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]

Мне интересно, можно ли ввести матрицу в слой внедрения?

1 Ответ

0 голосов
/ 05 ноября 2018

Каждый список в списке texts является обучающим образцом, и для каждого из них есть соответствующий список в списке labels. Следовательно, каждая обучающая выборка - это просто вектор целых чисел (то есть индексов слов), который вы можете легко передать в слой Embedding:

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

Обратите внимание, что вам может потребоваться преобразовать обучающие данные и метки в пустой массив (если это еще не сделано):

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
...