如何将包含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循环,但我不认为它是最佳解决方案)
答案 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的解决方案。