python - 使用向量查找的 Tensorflow 变换张量

标签 python vector tensorflow lookup

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

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,因此您可以执行以下操作。

使用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()}

您只需将字典dd_inverse中的值设置为tf.constants

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

关于python - 使用向量查找的 Tensorflow 变换张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46910931/

相关文章:

tensorflow - 使用 Tensorflow 的 Connectionist 时间分类 (CTC) 实现

python - 为什么 selenium 在这个 div 中找不到任何东西?

python - 在没有 manage.py 的情况下从 Django 库运行单元测试

arrays - 如何将多个向量(包含空向量)合并为一个新的向量?

c++ - 将 std::vector 作为参数传递给函数时出现 EXC_BAD_ACCESS

python - Tensorflow - 使用时间线进行分析 - 了解限制系统的因素

python - 以不同方式初始化参数给我相同的属性错误

image - 这种裁剪算法更优雅的改写是什么? (在 Python 中)

c++ - 在对 vector 中查找函数时出错

python - Tensorflow:没有为任何变量提供梯度