Как изменить входную длину в слое Embedding для каждого пакета? - PullRequest
1 голос
/ 10 марта 2019

Я проектирую слой встраивания, где словарный запас составляет ~ 4000, а большинство обучающих примеров имеют короткую длину менее 10. Однако некоторые примеры имеют длину 100 или, возможно, даже несколько сотен, и я хотел бы избежать заполнения нулями каждый пример длиной 100+, чтобы поддерживать постоянную длину ввода во всех примерах.

Чтобы исправить это, я хотел бы использовать только площадку, основанную на максимальной длине внутри партии , чтобы почти все партии имели только входную длину ~ 10, и только несколько партий имели большое заполнение. Как загрузить в каждый пакет с разной входной длиной в слой Embedded?

1 Ответ

0 голосов
/ 10 марта 2019

Один из возможных способов - установить для аргумента input_length значение None.Но если вы собираетесь использовать слои Dense и Flatten после этого слоя, они могут не работать.Для получения дополнительной информации посетите страницу keras doc

... Этот аргумент необходим, если вы собираетесь подключить Flatten, а затем плотные слои вверх по течению (без этого форма плотных выходов не можетбыть вычисленным)

model = keras.models.Sequential(
    [
      keras.layers.Embedding(voc_size, embedding_dim, input_length=None)
    ]
)

Теперь модель может принимать последовательности переменной длины.

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