2017-05-31 168 views
-1

如何修改秩1含N为int的张量的秩2含有与字典等效列表解析

在python像大小为M N个向量的张量:

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]) 

但我不能(从while循环一边,但我不认为这是最佳的解决方案)遍历一个张量

回答

0

如果有字典是一样的东西

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) 

,如果你有一个未知的尺寸变得更复杂。例如,如果张量1的形状未知,我不会看到不涉及tf.while_loop的解决方案。

+0

我想我错过了一些我得到的错误KeyError: