РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
611 of 824 menu

Функция strings.to_hash_bucket_fast

Функция strings.to_hash_bucket_fast преобразует строковый тензор в тензор целых чисел, где каждое число представляет номер корзины (хеш-бакета). Первым параметром передается строковый тензор, вторым - целое число num_buckets, задающее количество корзин. Функция использует быстрый детерминированный алгоритм хеширования без защиты от коллизий, что делает ее подходящей для задач, где важна скорость, а не криптостойкость: например, для преобразования категориальных признаков в индексы перед подачей в слой Embedding.

Синтаксис

tf.strings.to_hash_bucket_fast(input, num_buckets, name=None)

Параметр input принимает строковый тензор типа string. Параметр num_buckets задает количество корзин, в которые будут распределены строки. Параметр name задает необязательное имя операции.

Пример

Давайте преобразуем строковый тензор в индексы корзин с десятью бакетами:

import tensorflow as tf t = tf.constant(['abcde', 'model.keras', 'abcde']) res = tf.strings.to_hash_bucket_fast(t, 10) print(res)

Результат выполнения кода:

tf.Tensor([5 8 5], shape=(3,), dtype=int64)

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

Пример

Давайте получим числовые значения индексов с помощью метода numpy и посмотрим, как меняется результат при разном количестве корзин:

import tensorflow as tf t = tf.constant(['abcde', 'model.keras', 'abcde']) res = tf.strings.to_hash_bucket_fast(t, 100) print(res.numpy())

Результат выполнения кода:

[55 88 55]

Числа изменились, но одинаковые строки по-прежнему попадают в одну и ту же корзину.

Пример

Давайте применим функцию к двумерному строковому тензору:

import tensorflow as tf t = tf.constant([['abcde', 'model.keras'], ['model.keras', 'abcde']]) res = tf.strings.to_hash_bucket_fast(t, 10) print(res)

Результат выполнения кода:

tf.Tensor( [[5 8] [8 5]], shape=(2, 2), dtype=int64)

Функция сохраняет форму входного тензора, заменяя каждую строку соответствующим индексом корзины.

Смотрите также

  • функцию to_hash_bucket,
    которая преобразует строки в индексы корзин с защитой от коллизий
  • функцию to_number,
    которая преобразует строки в числа
  • функцию join,
    которая объединяет строковые тензоры
  • функцию length,
    которая возвращает длину каждой строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить