2016-02-10 26 views
12

Esiste un modo per eseguire una ricerca di dizionario basata su un tensore di stringa in Tensorflow?Ricerca dizionario tensorflow con tensore di stringa

In Python pianura, mi piacerebbe fare qualcosa di simile a

value = dictionary[key] 

. Ora mi piacerebbe fare la stessa cosa al runtime di Tensorflow, quando ho il mio key come un tensore di stringa. Qualcosa come

value_tensor = tf.dict_lookup(string_tensor) 

sarebbe bello.

risposta

-4

TensorFlow è un linguaggio di flusso di dati senza supporto per strutture dati diverse dai tensori. Non esiste una mappa o un tipo di dizionario. Tuttavia, a seconda di cosa è necessario, quando si utilizza il wrapper Python è possibile mantenere un dizionario nel processo del driver, che viene eseguito in Python e utilizzarlo per interagire con l'esecuzione del grafico TensorFlow. Ad esempio, è possibile eseguire un passaggio di un grafico TensorFlow all'interno di una sessione, restituire un valore stringa al driver Python, utilizzarlo come chiave in un dizionario nel driver e utilizzare il valore recuperato per determinare il successivo calcolo da richiedere dalla sessione. Probabilmente non è una buona soluzione se la velocità di queste ricerche nel dizionario è critica dal punto di vista delle prestazioni.

+0

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

14

Si potrebbe trovare utile 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

In particolare, si può fare:

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