Что такое работа "tf.nn.embedding_lookup" - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь реализовать слой «Внедрение» для классификации текста с использованием CNN.
Слой встраивания
with tf.device('/cpu:0'), tf.name_scope("embedding"): self.W = tf.Variable(tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0),name="W") self.embedded_chars = tf.nn.embedding_lookup(self.W, self.inputTensor) self.embedded_chars_expanded = tf.expand_dims(self.embedded_chars, -1)

Я не могу понять, tf.nn.embedding_lookup работает.

1 Ответ

0 голосов
/ 19 мая 2018

Эта функция используется для параллельного поиска в списке тензоров в параметрах.

Это обобщенная форма tf.gather.Этот пример очистит работу tf.gather и tf.nn.embedding_lookup.

. Предположим, у вас есть тензор формы (1), содержащий строки.Давайте назовем это params.

PARAMS

|.0. |1. |2. |3. |4. |.5. |<= index </p>

|.a1.|.a2.|.a3.|a4.|.a5.|а6 |<= values ​​</p>

Пусть Id будет другим тензором int32 или int64

IDS

[2, 3]

Тогда этоФункция возвращает значения по этим индексам в параметрах как другой тензор.

В приведенном выше случае возвращает.[a3, a4]

Это изображение должно прояснить

Так что в приведенном выше примере значение self.W по индексам, указанным self.InputTensor извлекаетсяс помощью функции tf.nn.embedding_lookup.

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