# tf.lookup.StaticHashTable

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.13.1/tensorflow/python/ops/lookup_ops.py#L275-L407) |

A generic hash table that is immutable once initialized.

Inherits From: [`TrackableResource`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/saved_model/experimental/TrackableResource)

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

#### Example usage:

    keys_tensor = tf.constant(['a', 'b', 'c'])
    vals_tensor = tf.constant([7, 8, 9])
    input_tensor = tf.constant(['a', 'f'])
    table = tf.lookup.StaticHashTable(
        tf.lookup.KeyValueTensorInitializer(keys_tensor, vals_tensor),
        default_value=-1)
    table.lookup(input_tensor).numpy()
    array([ 7, -1], dtype=int32)

Or for more pythonic code:

    table[input_tensor].numpy()
    array([ 7, -1], dtype=int32)

The result of a lookup operation has the same shape as the argument:

    input_tensor = tf.constant([['a', 'b'], ['c', 'd']])
    table[input_tensor].numpy()
    array([[ 7,  8],
           [ 9, -1]], dtype=int32)

<br />

<br />

<br />

| ## Args ||
|---|---|
| `initializer` | The table initializer to use. See `HashTable` kernel for supported key and value types. |
| `default_value` | The value to use if a key is missing in the table. |
| `name` | A name for the operation (optional). |
| `experimental_is_anonymous` | Whether to use anonymous mode for the table (default is False). In anonymous mode, the table resource can only be accessed via a resource handle. It can't be looked up by a name. When all resource handles pointing to that resource are gone, the resource will be deleted automatically. |

<br />

<br />

<br />

<br />

| ## Attributes ||
|---|---|
| `default_value` | The default value of the table. |
| `key_dtype` | The table key dtype. |
| `name` | The name of the table. |
| `resource_handle` | Returns the resource handle associated with this Resource. |
| `value_dtype` | The table value dtype. |

<br />

## Methods

### `export`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.13.1/tensorflow/python/ops/lookup_ops.py#L372-L388)

    export(
        name=None
    )

Returns tensors of all keys and values in the table.

<br />

<br />

<br />

| Args ||
|---|---|
| `name` | A name for the operation (optional). |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| A pair of tensors with the first tensor containing all keys and the second tensors containing all values in the table. ||

<br />

### `lookup`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.13.1/tensorflow/python/ops/lookup_ops.py#L226-L265)

    lookup(
        keys, name=None
    )

Looks up `keys` in a table, outputs the corresponding values.

The `default_value` is used for keys not present in the table.

<br />

<br />

<br />

| Args ||
|---|---|
| `keys` | Keys to look up. May be either a `SparseTensor` or dense `Tensor`. |
| `name` | A name for the operation (optional). |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| A `SparseTensor` if keys are sparse, a `RaggedTensor` if keys are ragged, otherwise a dense `Tensor`. ||

<br />

<br />

<br />

<br />

| Raises ||
|---|---|
| `TypeError` | when `keys` or `default_value` doesn't match the table data types. |

<br />

### `size`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.13.1/tensorflow/python/ops/lookup_ops.py#L214-L224)

    size(
        name=None
    )

Compute the number of elements in this table.

<br />

<br />

<br />

| Args ||
|---|---|
| `name` | A name for the operation (optional). |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| A scalar tensor containing the number of elements in this table. ||

<br />

### `__getitem__`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.13.1/tensorflow/python/ops/lookup_ops.py#L168-L170)

    __getitem__(
        keys
    )

Looks up `keys` in a table, outputs the corresponding values.