2016-02-10 2 views
12

Есть ли способ выполнить поиск словаря на основе тензора String в Tensorflow?Поиск слова тензорного потока с тензором String

В простом Python, я хотел бы сделать что-то вроде

value = dictionary[key] 

. Теперь я хотел бы сделать то же самое во время выполнения Tensorflow, когда у меня есть key как тензор String. Что-то вроде

value_tensor = tf.dict_lookup(string_tensor) 

было бы здорово.

ответ

-4

TensorFlow - это язык потока данных без поддержки структур данных, отличных от тензоров. Нет типа карты или словаря. Однако, в зависимости от того, что вам нужно, когда вы используете оболочку Python, можно поддерживать словарь в процессе драйвера, который выполняется в Python, и использовать его для взаимодействия с графиком TensorFlow. Например, вы можете выполнить один шаг графика TensorFlow в сеансе, вернуть значение строки в драйвер Python, использовать его в качестве ключа в словаре в драйвере и использовать полученное значение для определения следующего запрошенного вычисления из сеанса. Это, вероятно, не очень хорошее решение, если скорость поиска в словарях критически важна.

+0

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

14

Вы можете найти tensorflow.contrib.lookup полезно: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lookup/lookup_ops.py

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

В частности, вы можете сделать:

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

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