张量流中的等价列表理解

时间:2017-05-31 12:10:57

标签: python tensorflow list-comprehension tensor

如何将包含N int的等级1的张量修改为等级2的张量,其中包含大小为M的N向量和字典

在python中像:

dict = {1 : [1,2,3] , 2 : [3,2,1]}
array1 = np.array([1,1,2,1,2])
array2 = np.array([dict[x] for x in array1])

但我无法迭代Tensor(除了while循环,但我不认为它是最佳解决方案)

1 个答案:

答案 0 :(得分:1)

如果您拥有的词典是

dict = {1: tf.constant([1, 2, 3]), 2: tf.constant([1, 2, 3])}
tensor1 = tf.constant([1, 1, 2, 1, 2])

然后这样的事情应该做的工作:

vals = [dict[tensor1[k]] for k in range(tensor1.get_shape().as_list()[0])]
tensor2 = tf.stack(vals, axis=0)

如果您的尺寸未知,则会变得更加复杂。例如,如果tensor1的形状未知,我不会看到不涉及tf.while_loop的解决方案。