Разница между feature_column.embedding_column и keras.layers.Embedding в TensorFlow - PullRequest
1 голос
/ 07 ноября 2019

Я использую keras.layers.Embedding почти для всех своих проектов. Но недавно я захотел поиграться с tf.data и нашел feature_column.embedding_column .

Из документации:

feature_column.embedding_column -DenseColumn, который преобразует из разреженного, категориального ввода. Используйте это, когда ваши входы редки, но вы хотите преобразовать их в плотное представление (например, для подачи в DNN).

keras.layers.Embedding - Превращает натуральные числа (индексы) в плотные векторы фиксированного размера. Например, [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]] Этот слой можно использовать только в качестве первого слоя в модели.

Мой вопрос заключается в том, оба ли API-интерфейса выполняют аналогичные действия для разных типов входных данных (например, для ввода - [0, 1,2] для keras.layers.Embedding и его горячим закодированным ответом. [[1,0,0], [0,1,0], [0,0,1] для feature_column.embedding_column)?

1 Ответ

1 голос
/ 07 ноября 2019

После просмотра исходного кода для обеих операций вот что я нашел:

  • обе операции основаны на tensorflow.python.ops.embedding_ops funcitonality;
  • keras.layers. Встраивание использует плотность представлений и содержит общий код keras для работы с фигурами, переменными инициализации и т. Д .;
  • feature_column.embedding_column опирается на sparse и содержит функции для кэширования результатов.

Итак, ваше предположение кажется правильным: эти 2 делают схожие вещи, опираясь на разные входные представления, содержат некоторую логику, которая не меняет сути того, что они делают.

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