Spec-Zone.ru › TensorFlow 2.3

tf.keras.layers.experimental.preprocessing.Hashing

Реализует хеширование категориальных признаков, также известное как «хеширование трюк».

Наследуется от: Layer

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения дополнительной информации.

tf.compat.v1.keras.layers.experimental.preprocessing.Hashing

tf.keras.layers.experimental.preprocessing.Hashing(
    num_bins, salt=None, name=None, **kwargs
)

Этот слой преобразует один или несколько категориальных входных данных в хешированный вывод. Он преобразует последовательность целых чисел или строк в последовательность целых чисел. Стабильная хеш-функция использует tensorflow::ops::Fingerprint для генерации универсального вывода, согласованного на разных платформах.

Этот слой по умолчанию использует FarmHash64, который обеспечивает согласованный хешированный вывод на разных платформах и стабилен при вызовах, независимо от устройства и контекста, путем тщательного смешивания битов входных данных.

Если требуется замаскировать хешированный вывод, вы также можете передать случайный salt аргумент в конструктор. В этом случае слой будет использовать хеш-функцию SipHash64, при этом значение salt будет использоваться как дополнительный ввод для хеш-функции.

Пример (FarmHash64):

layer = tf.keras.layers.experimental.preprocessing.Hashing(num_bins=3)
inp = [['A'], ['B'], ['C'], ['D'], ['E']]
layer(inp)
<tf.Tensor: shape=(5, 1), dtype=int64, numpy=
  array([[1],
         [0],
         [1],
         [1],
         [2]])>

Пример (FarmHash64) со списком входных данных:

layer = tf.keras.layers.experimental.preprocessing.Hashing(num_bins=3) inp_1 = [['A'], ['B'], ['C'], ['D'], ['E']] inp_2 = np.asarray([[5], [4], [3], [2], [1]]) layer([inp_1, inp_2])

Пример (SipHash64):

layer = tf.keras.layers.experimental.preprocessing.Hashing(num_bins=3,
   salt=[133, 137])
inp = [['A'], ['B'], ['C'], ['D'], ['E']]
layer(inp)
<tf.Tensor: shape=(5, 1), dtype=int64, numpy=
  array([[1],
         [2],
         [1],
         [0],
         [2]])>

Пример (SipHash64 с одним целым числом, аналогично salt=[133, 133]

layer = tf.keras.layers.experimental.preprocessing.Hashing(num_bins=3,
   salt=133)
inp = [['A'], ['B'], ['C'], ['D'], ['E']]
layer(inp)
<tf.Tensor: shape=(5, 1), dtype=int64, numpy=
  array([[0],
         [0],
         [2],
         [1],
         [0]])>

Ссылка: SipHash с солью

Аргументы
num_bins Количество хеш-ячеек.
salt Одно беззнаковое целое число или None. Если передано, используемая хеш-функция будет SipHash64, и эти значения будут использоваться в качестве дополнительного входа (известного в криптографии как «соль»). Они должны быть отличны от нуля. По умолчанию None (в этом случае используется хеш-функция FarmHash64). Также поддерживается кортеж/список из 2 беззнаковых целых чисел, см. справочную статью для деталей.
name Имя слоя.
**kwargs Ключевые аргументы для создания слоя.

Форма входных данных: Одна или несколько строк, int32 или int64 Tensor, SparseTensor или RaggedTensor формы [batch_size, ...,]

Форма выходных данных: int64 Tensor, SparseTensor или RaggedTensor формы [batch_size, ...]. Если любой вход RaggedTensor то вывод RaggedTensor, в противном случае, если любой вход SparseTensor то вывод SparseTensor, иначе вывод Tensor.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/keras/layers/experimental/preprocessing/Hashing

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API