Я думаю, что в этом вопросе есть две путаницы. Во-первых, операция объединения происходит по набору идентификаторов внедрения для каждой строки ввода разреженных индексов sp_ids
. Так что если sp_ids
имеет форму N x 1, то вы «комбинируете» только один вектор внедрения на каждую строку sp_ids
, который просто извлекает этот вектор внедрения (что, я думаю, вы хотите сказать) .
Во-вторых, возвращаемое значение является вектором внедрения для каждой строки ввода. Сам вектор вложения является плотным вектором, по определению, что такое вложение и что вычисляют операции вложения TensorFlow. Так что этот возвращаемый результат всегда будет плотным, и это то, что вы хотите. Разреженное представление матрицы было бы ужасно неэффективным, поскольку матрица действительно будет плотной (полной плотных вложений), независимо от того, происходит операция «объединитель» или нет.
Исследовательская работа, которую вы связали, похоже, не содержит какой-либо специальной методологии, которая привела бы к особому случаю разреженного вектора вложения, поэтому я не вижу причины для ожидания или получения разреженных выходных данных.
Может быть, я не прав, можете ли вы предоставить более подробную информацию о том, почему вы ожидаете, что сами векторы вложения будут разреженными? Это было бы очень необычной ситуацией, если так.