Ошибка формы при передаче токенизированного полного текста в слой Keras Embedded - PullRequest
1 голос
/ 08 ноября 2019

Я пытаюсь построить модель машинного обучения с tenorflow 2.0, которая будет использоваться для классификации полнотекстовых данных ocr, использующих слой Embedding, с которым я борюсь. Я уже предварительно обработал и расшифровал полный текст и сохранил все данные в виде рассола.

Я выполняю всю загрузку из моего рассола и преобразую полнотекстовую серию в массив Numpy следующим образом:

df = pd.read_pickle("my_pickle.pkl")
feature = df['FullTextTokenized']

split_idx = int(len(features) * 0.8)
train_x = features[:split_idx].to_numpy()
test_x = features[split_idx:].to_numpy()

train_y = labels[:split_idx].to_numpy()
test_y = labels[split_idx:].to_numpy()

все отлично работает. train_x теперь является массивом массивов int32. Если я печатаю форму, я получаю следующий результат, который также является правильным:

print(train_x.shape)
print(train_x[0].shape)

Output:
(126239,)
(1246,)

Итак, я начинаю строить свою модель, сводка выглядит следующим образом:

Layer (type)                 Output Shape              Param #
=================================================================
layer_embedding (Embedding)  (None, 1246, 300)         30000000
...

Так что все должно работать нормально, так как слой встраивания ожидает ту же форму, что и мой train_x

Я начинаю тренировку следующим образом:

# Train model
model.fit(train_x, 
          train_y,
          validation_split=0.1, 
          callbacks=[cp_callback],
          epochs=3, 
          batch_size=512)

И когда я делаю это, я получаюследующая ошибка, которая не имеет смысла для меня:

ValueError: Error when checking input: expected layer_embedding_input to have shape (1246,) but got array with shape (1,)

Форма ввода моих данных (1240,), как показано выше при печати формы. Должен ли я сделать еще один шаг, чтобы тензорный поток принял весь массив как один вход, или он пытается получить самый нижний слой данного массива, который является int32?

Заранее спасибо за любую предоставленную помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...