给定一个具有唯一键和值的固定字典(所有数字都是非负整数):
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]])
最佳答案
正如 @OphirYoktan 提到的,有一个查找运算符。我建议使用 tf.embedding_lookup
但由于您的目标还在于映射矢量 - 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
话虽如此,这些映射应该与您的图表的计算原因有关,否则我建议您在图表之外进行这些映射。
关于python - 使用向量查找的 Tensorflow 变换张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46910931/