LSTM в форме данных (11709, 25,4435) не работает - PullRequest
1 голос
/ 07 марта 2020

У меня есть набор данных следующего вида: 11709 экземпляров, каждый из которых имеет 25 объектов, и каждый объект содержит массив из одного вектора с горячим кодированием размера 4435. Вектор метки представляет собой один вектор с горячим кодированием размера 3, т.е. у нас есть 3 метки.

Я пытаюсь запустить следующую lstm:

from keras import layers
from keras.models import Model
from keras.models import Sequential
from keras.layers.core import Dense
from keras.layers import Conv1D, GlobalAveragePooling1D, MaxPooling1D , Dropout, Flatten,Activation,LSTM


model = Sequential()
model.add(Conv1D(filters=64, kernel_size=1, input_shape=(11709, 25)))
model.add(Activation('relu'))
model.add(Conv1D(filters=64, kernel_size=1))
model.add(Activation('relu'))

model.add(LSTM(3, input_shape=(4435, 25)))
model.add(Dense(3))
model.add(Activation('softmax'))


model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()
    `

Когда я запускаю код, он возвращает следующую ошибку: ValueError: Ошибка при проверке цели: ожидаемая активация_77 для иметь форму (3,), но получил массив с формой (1,).

У кого-нибудь есть какие-либо подсказки? Я видел кучу решений этой ошибки, но никто не помог.

Когда я запускаю мой training_set.shape, он возвращает (11709, 25), а не (11709, 25,4435), как я думал, что произойдет.

Большое спасибо.

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