Skip to main content
 首页 » 编程设计

python之带有向量查找的 Tensorflow 变换张量

2024年08月19日30dflying

给定一个具有唯一键和值的固定字典(所有数字都是非负整数):

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但由于您还打算映射 vector - id 您可以执行以下操作。

使用tf.map_fn

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

话虽如此,这些映射应该与您的图的计算原因有关,否则我建议您在图外进行。