tf.feature_column.categorical_column_with_hash_bucket
| Просмотреть исходный код на GitHub |
Представляет разреженное свойство, где идентификаторы устанавливаются путём хэширования.
tf.feature_column.categorical_column_with_hash_bucket(
key,
hash_bucket_size,
dtype=tf.dtypes.string
)
Используйте этот метод, когда ваши разреженные свойства представлены в строковом или целочисленном формате, и вы хотите распределить свои входные данные в конечное число ведер путём хэширования. output_id = Hash(input_feature_string) % bucket_size для входных данных строкового типа. Для входных данных целочисленного типа значение сначала преобразуется в строковое представление, а затем хэшируется по той же формуле.
Для входного словаря features, features[key] является либо Tensor или SparseTensor. Если Tensor, пропущенные значения могут быть представлены -1 для целых чисел и '' для строк, которые будут отброшены этим столбцом свойств.
Пример:
import tensorflow as tf
keywords = tf.feature_column.categorical_column_with_hash_bucket("keywords",
10000)
columns = [keywords]
features = {'keywords': tf.constant([['Tensorflow', 'Keras', 'RNN', 'LSTM',
'CNN'], ['LSTM', 'CNN', 'Tensorflow', 'Keras', 'RNN'], ['CNN', 'Tensorflow',
'LSTM', 'Keras', 'RNN']])}
linear_prediction, _, _ = tf.compat.v1.feature_column.linear_model(features,
columns)
# or
import tensorflow as tf
keywords = tf.feature_column.categorical_column_with_hash_bucket("keywords",
10000)
keywords_embedded = tf.feature_column.embedding_column(keywords, 16)
columns = [keywords_embedded]
features = {'keywords': tf.constant([['Tensorflow', 'Keras', 'RNN', 'LSTM',
'CNN'], ['LSTM', 'CNN', 'Tensorflow', 'Keras', 'RNN'], ['CNN', 'Tensorflow',
'LSTM', 'Keras', 'RNN']])}
input_layer = tf.keras.layers.DenseFeatures(columns)
dense_tensor = input_layer(features)
| Аргументы | |
|---|---|
key | Уникальная строка, идентифицирующая входное свойство. Она используется в качестве имени столбца и ключа словаря для конфигураций разбора свойств, объектов свойств Tensor и столбцов свойств. |
hash_bucket_size | Целое число > 1. Количество ведер. |
dtype | Тип свойств. Поддерживаются только строковые и целочисленные типы. |
| Возвращает | |
|---|---|
A HashedCategoricalColumn. |
| Возможные исключения | |
|---|---|
ValueError | hash_bucket_size не больше 1. |
ValueError | dtype не является ни строкой, ни целым числом. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/feature_column/categorical_column_with_hash_bucket