Spec-Zone.ru › TensorFlow 2.4

tf.keras.layers.experimental.preprocessing.Hashing

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

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

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

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

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

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])
<tf.Tensor: shape=(5, 1), dtype=int64, numpy=
  array([[1],
         [1],
         [0],
         [2],
         [0]])>

Пример (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.

Методы

adapt

Просмотреть исходный код

adapt(
    data, reset_state=True
)

Подгоняет состояние слоя предобработки к передаваемым данным.

Аргументы
data Данные для обучения. Можно передать либо как объект tf.data Dataset, либо как массив numpy.
reset_state Необязательный аргумент, указывающий, следует ли очистить состояние слоя в начале вызова adapt, или следует ли начать с текущего состояния. Этот аргумент может быть неактуален для всех слоев предобработки: подкласс PreprocessingLayer может вызвать ошибку, если 'reset_state' установлен в False.

© 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.4/api_docs/python/tf/keras/layers/experimental/preprocessing/Hashing

Spec-Zone.ru

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