Tensorflow Dictionary lookup with String tensor

mackcmillion picture mackcmillion · Feb 10, 2016 · Viewed 20.9k times · Source

Is there any way to perform a dictionary lookup based on a String tensor in Tensorflow?

In plain Python, I'd do something like

value = dictionary[key]

. Now I'd like to do the same thing at Tensorflow runtime, when I have my key as a String tensor. Something like

value_tensor = tf.dict_lookup(string_tensor)

would be nice.

Answer

Saurfang picture Saurfang · Nov 16, 2016

You might find tensorflow.contrib.lookup helpful: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lookup/lookup_ops.py

https://www.tensorflow.org/api_docs/python/tf/contrib/lookup/HashTable

In particular, you can do:

table = tf.contrib.lookup.HashTable(
  tf.contrib.lookup.KeyValueTensorInitializer(keys, values), -1
)
out = table.lookup(input_tensor)
table.init.run()
print out.eval()