Spec-Zone.ru › TensorFlow

tf.compat.v1.lookup.StaticHashTable

Обобщённая хеш-таблица, неизменяемая после инициализации.

Наследуется от: StaticHashTable, TrackableResource

tf.compat.v1.lookup.StaticHashTable(
    initializer, default_value, name=None, experimental_is_anonymous=False
)

При работе в режиме графа необходимо вычислить тензор, возвращаемый tf.tables_initializer(), прежде чем вычислять тензор, возвращаемый методом lookup() этого класса. Пример использования в режиме графа:

keys_tensor = tf.constant([1, 2])
vals_tensor = tf.constant([3, 4])
input_tensor = tf.constant([1, 5])
table = tf.lookup.StaticHashTable(
    tf.lookup.KeyValueTensorInitializer(keys_tensor, vals_tensor), -1)
out = table.lookup(input_tensor)
with tf.Session() as sess:
    sess.run(tf.tables_initializer())
    print(sess.run(out))

Обратите внимание: если в режиме графа установить experimental_is_anonymous в значение True, следует вызвать Session.run только один раз. В противном случае каждый вызов Session.run будет создавать (и уничтожать) новую таблицу, не связанную с остальными, что приведёт к таким ошибкам, как «Таблица не инициализирована». Это можно сделать так:

keys_tensor = tf.constant([1, 2])
vals_tensor = tf.constant([3, 4])
input_tensor = tf.constant([1, 5])
table = tf.lookup.StaticHashTable(
    tf.lookup.KeyValueTensorInitializer(keys_tensor, vals_tensor), -1,
    experimental_is_anonymous=True)
with tf.control_dependencies([tf.tables_initializer()]):
  out = table.lookup(input_tensor)
with tf.Session() as sess:
  print(sess.run(out))

В нетерпеливом режиме для инициализации таблицы не требуется специальный код. Пример использования в нетерпеливом режиме:

tf.enable_eager_execution()
keys_tensor = tf.constant([1, 2])
vals_tensor = tf.constant([3, 4])
input_tensor = tf.constant([1, 5])
table = tf.lookup.StaticHashTable(
    tf.lookup.KeyValueTensorInitializer(keys_tensor, vals_tensor), -1)
print(table.lookup(input_tensor))
Аргументы
initializer Инициализатор таблицы. Поддерживаемые типы ключей и значений см. в ядре HashTable.
default_value Значение, используемое, если ключ отсутствует в таблице.
name Имя операции (необязательно).
experimental_is_anonymous Использовать ли для таблицы анонимный режим (по умолчанию — False). В анонимном режиме доступ к ресурсу таблицы возможен только через дескриптор ресурса. Найти его по имени нельзя. Когда все дескрипторы, указывающие на этот ресурс, будут удалены, ресурс автоматически удалится.
Атрибуты
default_value Значение таблицы по умолчанию.
initializer
key_dtype Тип данных ключей таблицы.
name Имя таблицы.
resource_handle Возвращает дескриптор ресурса, связанный с этим ресурсом.
value_dtype Тип данных значений таблицы.

Методы

export

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

export(
    name=None
)

Возвращает тензоры, содержащие все ключи и значения таблицы.

Аргументы
name Имя операции (необязательно).
Возвращает
Пару тензоров: первый содержит все ключи, а второй — все значения таблицы.

lookup

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

lookup(
    keys, name=None
)

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

Для ключей, отсутствующих в таблице, используется default_value.

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

size

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

size(
    name=None
)

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

Аргументы
name Имя операции (необязательно).
Возвращает
Скалярный тензор, содержащий количество элементов в этой таблице.

__getitem__

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

__getitem__(
    keys
)

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

© 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/api_docs/python/tf/compat/v1/lookup/StaticHashTable

Spec-Zone.ru

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