Ошибка при проверке цели: ожидалось, что time_distributed_6 будет иметь 3 измерения, но получит массив с формой (200, 80) - PullRequest
0 голосов
/ 30 марта 2020

Я пытался реализовать модель тегирования последовательности с помощью LSTM. Например, у меня есть 200 предложений, в которых каждый токен имеет вложение 1024 dim. Я также дополнил все предложения до 80-мерных векторов. Итак, у меня есть входная матрица с формой (200,80,1024).

Я также добавил цели. У меня есть для каждого токена предложений тег. Таким образом, моя форма у (200,80).

Я пробовал с помощью LSTM таким образом

from keras.models import Model, Input
from keras.layers.merge import add
from keras.layers import LSTM, Embedding, Dense, TimeDistributed, Dropout, Bidirectional, Lambda

max_len = 80 
input_text = Input(shape=(max_len,1024), dtype=tf.float32)
x = Bidirectional(LSTM(units=512, return_sequences=True,
                       recurrent_dropout=0.2, dropout=0.2))(input_text)
x_rnn = Bidirectional(LSTM(units=512, return_sequences=True,
                           recurrent_dropout=0.2, dropout=0.2))(x)
x = add([x, x_rnn])  # residual connection to the first biLSTM
out = TimeDistributed(Dense(n_tags, activation="softmax"))(x)
model = Model(input_text, out)
model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"])

history = model.fit(np.array(full_embeddings), y,batch_size=32, epochs=10, verbose=1)

, но я получаю эту ошибку:

ValueError: Error when checking target: expected time_distributed_6 to have 3 dimensions, but got array with shape (200, 80)
* 1010 Может ли кто-нибудь объяснить мне проблему? Я совершенно новичок в Keras и Neural Nets, и я не могу понять причину.

Спасибо

1 Ответ

0 голосов
/ 30 марта 2020

Поскольку ваш конечный выходной слой равен time distributed, он имеет 3 измерения. Ваши цели y также должны иметь 3 измерения. Измените форму вашего y

y = np.expand_dims(y, -1)

на (200, 80, 1)

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