Я следую за классом нейронной сети coursera, и я пытаюсь передать назначения с использованием python + keras вместо октавы.Keras word embedding в четырехграмовой модели
Я хочу предсказать четвертое слово, учитывая предыдущие три. Мои входные документы насчитывают 250 уникальных слов.
Модель должна иметь слой внедрения, который отображает каждое слово в векторное пространство длиной 50 дБ, скрытый слой с 200 нейронами с функцией активации сигмоида и выходной уровень 250 единиц, забивающий вероятность того, что четвертое слово будет равным для тех, кто в моем словаре благодаря активации softmax.
У меня проблемы с размерами. Вот мой код:
from keras.models import Sequential
from keras.layers import Dense, Activation, Embedding
model = Sequential([Embedding(250,50),
Dense(200, activation='sigmoid'),
Dense(250, activation='softmax')
])
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics=['accuracy'])
Но я никогда не скомпилировать модель, так как я встречая следующее сообщение об ошибке:
Exception: Input 0 is incompatible with layer dense_1: expected ndim=2, found ndim=3
Любой намек будет высоко ценится. Заранее спасибо