给定一个具有唯一键和值的固定字典(所有数字都是非负整数):
d = {(1,3): 6, (5,4): 9}
在tensorflow中转换的有效方法是什么:
tf.constant([[1,3], [5,4], [1,3]]) -> tf.constant([6, 9, 6])
反之亦然:
tf.constant([6, 9, 6]) -> tf.constant([[1,3], [5,4], [1,3]])
答案 0 :(得分:2)
正如@OphirYoktan所提到的,那里有一个查找运算符。我建议您使用tf.embedding_lookup
,但由于您的目标是vector - id
,您可以执行以下操作。
d_inverse = {v:k for k,v in d.items()}
d_mapped = tf.map_fn(lambda x: d[x], d.values())
d_mapped_inverse = tf.map_fn(lambda x: d_inverse[x], d_inverse.items()}
您只需将字母d
和d_inverse
中的值设置为tf.constants
话虽如此,这些映射应该与图表的计算原因有关,否则我会建议你在图表之外做这些。
答案 1 :(得分:1)
在tensorflow中有一个可查找的模块 - 文档位于: https://www.tensorflow.org/api_docs/python/tf/contrib/lookup