Класс Hashing
Класс Hashing выполняет хеширование входных данных,
преобразуя строки или числа в целочисленные индексы
в заданном диапазоне. Первым параметром передается
количество сегментов num_bins, которое определяет
размер выходного пространства. Вторым параметром можно
передать mask_value для маскирования отсутствующих
значений, а также salt для изменения хеш-функции.
Класс удобен при работе с категориальными признаками,
словарями и текстовыми данными.
Синтаксис
tf.keras.layers.Hashing(num_bins, [mask_value], [salt])
Пример
Давайте создадим слой хеширования на 3 сегмента
и применим его к строкам:
import tensorflow as tf
layer = tf.keras.layers.Hashing(num_bins=3)
res = layer([['abcde'], ['model.keras']])
print(res)
Результат выполнения кода:
tf.Tensor(
[[1]
[0]], shape=(2, 1), dtype=int64)
Пример
Давайте применим слой к списку строк и выведем форму результата:
import tensorflow as tf
layer = tf.keras.layers.Hashing(num_bins=5)
res = layer(['abcde', 'model.keras', 'abcde'])
print(res)
print(res.shape)
Результат выполнения кода:
tf.Tensor([2 4 2], shape=(3,), dtype=int64)
(3,)
Пример
Давайте используем параметр salt, чтобы изменить
распределение хешей:
import tensorflow as tf
layer = tf.keras.layers.Hashing(num_bins=3, salt=42)
res = layer([['abcde'], ['model.keras']])
print(res)
Результат выполнения кода:
tf.Tensor(
[[0]
[2]], shape=(2, 1), dtype=int64)
Смотрите также
-
функцию
to_hash_bucket,
которая хеширует строки в сегменты -
функцию
to_hash_bucket_fast,
которая быстро хеширует строки без соли -
класс
CategoryEncoding,
который кодирует категориальные признаки -
класс
IntegerLookup,
который сопоставляет целые числа индексам