Spec-Zone.ru › TensorFlow 2.4

tf.compat.v1.lookup.StaticVocabularyTable

Таблица соответствия строк и идентификаторов, которая назначает ключи вне словаря в хеш-ведра.

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

tf.compat.v1.lookup.StaticVocabularyTable(
    initializer, num_oov_buckets, lookup_key_dtype=None, name=None
)

Например, если экземпляр StaticVocabularyTable инициализирован инициализатором строки-в-идентификатор, который отображает:

init = tf.lookup.KeyValueTensorInitializer(
    keys=tf.constant(['emerson', 'lake', 'palmer']),
    values=tf.constant([0, 1, 2], dtype=tf.int64))
table = tf.lookup.StaticVocabularyTable(
   init,
   num_oov_buckets=5)

Объект Vocabulary будет выполнять следующие преобразования:

  • emerson -> 0
  • lake -> 1
  • palmer -> 2
  • <other term> -> bucket_id, где bucket_id будет между 3 и 3 + num_oov_buckets - 1 = 7, вычисляемый по формуле: hash(<term>) % num_oov_buckets + vocab_size

Если входной тензор:

input_tensor = tf.constant(["emerson", "lake", "palmer",
                            "king", "crimson"])
table[input_tensor].numpy()
array([0, 1, 2, 6, 7])

Если initializer равен None, используются только ведра для ключей вне словаря.

Пример использования:

num_oov_buckets = 3
vocab = ["emerson", "lake", "palmer", "crimnson"]
import tempfile
f = tempfile.NamedTemporaryFile(delete=False)
f.write('\n'.join(vocab).encode('utf-8'))
f.close()
init = tf.lookup.TextFileInitializer(
    f.name,
    key_dtype=tf.string, key_index=tf.lookup.TextFileIndex.WHOLE_LINE,
    value_dtype=tf.int64, value_index=tf.lookup.TextFileIndex.LINE_NUMBER)
table = tf.lookup.StaticVocabularyTable(init, num_oov_buckets)
table.lookup(tf.constant(["palmer", "crimnson" , "king",
                          "tarkus", "black", "moon"])).numpy()
array([2, 3, 5, 6, 6, 4])

Функция хэширования, используемая для генерации идентификаторов ведер для ключей вне словаря, — Fingerprint64.

Аргументы
initializer Объект TableInitializerBase, содержащий данные, используемые для инициализации таблицы. Если None, то используются только ведра для ключей вне словаря.
num_oov_buckets Количество ведер для ключей вне словаря. Должно быть больше нуля.
lookup_key_dtype Тип данных ключей, передаваемых в lookup. По умолчанию initializer.key_dtype если указан initializer, в противном случае tf.string. Должен быть строковым или целочисленным типом, и должен быть приводимым к типу initializer.key_dtype.
name Имя операции (необязательно).
Исключения
ValueError если num_oov_buckets не положительно.
TypeError если тип данных lookup_key или initializer.key_dtype не является целочисленным или строковым. Также, если initializer.value_dtype != int64.
Атрибуты
initializer
key_dtype Тип данных ключей таблицы.
name Имя таблицы.
resource_handle Возвращает дескриптор ресурса, связанный с этим ресурсом.
value_dtype Тип данных значений таблицы.

Методы

lookup

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

lookup(
    keys, name=None
)

Ищет keys в таблице, возвращает соответствующие значения.

Она назначает ключи вне словаря в ведра на основе их хешей.

Аргументы
keys Ключи для поиска. Может быть либо SparseTensor или плотным Tensor.
name Необязательное имя для операции.
Возвращает
SparseTensor если ключи являются разреженными, RaggedTensor если ключи являются фрагментированными, в противном случае плотный Tensor.
Исключения
TypeError если keys не соответствует типу данных ключей таблицы.

size

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

size(
    name=None
)

Вычисляет количество элементов в этой таблице.

__getitem__

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

__getitem__(
    keys
)

Ищет keys в таблице, возвращает соответствующие значения.

© 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/compat/v1/lookup/StaticVocabularyTable

Spec-Zone.ru

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