2017-05-31 39 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: