Хешированное межпродуктовое преобразование в PyTorchPython

Программы на Python
Ответить
Anonymous
 Хешированное межпродуктовое преобразование в PyTorch

Сообщение Anonymous »

Я хочу реализовать хешированное преобразование перекрестных произведений, подобное тому, которое использует Keras:

Код: Выделить всё

>>> layer = keras.layers.HashedCrossing(num_bins=5, output_mode='one_hot')
>>> feat1 = np.array([1, 5, 2, 1, 4])
>>> feat2 = np.array([2, 9, 42, 37, 8])
>>> layer((feat1, feat2))

>>> layer2 = keras.layers.HashedCrossing(num_bins=5, output_mode='int')
>>> layer2((feat1, feat2))

Этот слой выполняет пересечение категориальных признаков с использованием «трюка хеширования». Концептуально преобразование можно представить как: hash(concatenate(features)) % num_bins.

Я изо всех сил пытаюсь понять объединение(features) часть. Нужно ли мне хешировать каждую «пару» функций?
Тем временем я попробовал это:

Код: Выделить всё

>>> cross_product_idx = (feat1*feat2.max()+1 + feat2) % num_bins
>>> cross_product = nn.functional.one_hot(cross_product_idx, num_bins)
Это работает, но отсутствие использования хеш-функции может вызвать проблемы с дистрибутивами


Подробнее здесь: https://stackoverflow.com/questions/790 ... in-pytorch
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»