ValueError: Аргумент должен быть плотным тензором: ((10, 4945), 1024) - получил форму [2], но хотел [2, 2] - PullRequest
0 голосов
/ 21 мая 2019

Моя keras модель:

        model = Sequential()
        model.add(Embedding(input_dim=(self.BATCH_SIZE,
                                       len(self._tokens)), output_dim=1024))

        model.add(LSTM(128))

        model.add(Dropout(rate=0.5))
        model.add(Dense(len(self._tokens)))
        model.add(Activation('softmax'))

, и я получаю сообщение об ошибке:

ValueError: Argument must be a dense tensor: ((10, 4945), 1024) - got shape [2], but wanted [2, 2].

Я не уверен, что делаю неправильно.Любая помощь будет оценена.

1 Ответ

1 голос
/ 21 мая 2019

Согласно официальной документации keras , параметр input_dim уровня встраивания должен соответствовать размеру словаря, то есть максимальный целочисленный индекс + 1 (int> 0).

Итак, ваш код должен быть:

model.add(Embedding(input_dim=len(self._tokens), output_dim=1024))

В случае, если вы не добавили input_length и input_shape параметры в слое внедрения, тогда

input_shape = (None,)

иначе

input_shape = (input_length,) # added 'input_length=' parameter

Для получения дополнительной информации проверьте официальный код здесь .

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