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))
В режиме eager, для инициализации таблицы не требуется специальный код. Пример использования в режиме eager:
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 если ключи нерегулярные, иначе плотный 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/versions/r2.9/api_docs/python/tf/compat/v1/lookup/StaticHashTable