2017-09-26 35 views
1

我想以交替方式連接兩個張量shape=(None, 16)(因此結果張量必須是shape=(None, 32),其中第一張量的第一個數組與第一個張量交替混合我不能因爲未知shape[0]張量循環,不支持第二張之一等等。以交替方式連接兩個張量(Tensorflow)

我該怎麼辦呢?

zip函數張量(張量的對象不是可迭代) 我使用Python3的Tensorflow。

+0

你使用什麼軟件?你的問題應該更加精確。 –

+0

我在問題的標題中寫了它,現在我編輯並添加了我使用Python3與Tensorflow –

回答

2

假設兩個張量在外部(None)維中具有相同的形狀,並且您想要在兩個張量的行之間交替,可以通過添加一個具有tf.expand_dims()的維,與tf.concat()連接,然後使用tf.reshape()重塑形:

# Use these tensors as example inputs, but the shape need not be statically known. 
x = tf.ones([37, 16]) 
y = tf.zeros([37, 16]) 

x_expanded = tf.expand_dims(x, 2)     # shape: (37, 16, 1) 
y_expanded = tf.expand_dims(y, 2)     # shape: (37, 16, 1) 

concatted = tf.concat([x_expanded, y_expanded], 2) # shape: (37, 16, 2) 

result = tf.reshape(concatted, [-1, 32])   # shape: (37, 32) 
+0

謝謝,但這不是我必須做的! 如果我有兩個數組: x = tf.ones([37,16]) y = tf.zeros([37,16]) 我想要一個形狀結果數組:(37,64) 其中我第一個數組的數組以交替方式與第二個數組的i數組混合。 因此,在這個例子中,37種長度爲64的數組:[1,0,1,0,1,0,...] –

+0

在這種情況下,64從哪裏來? (我希望按照你所描述的方式連接兩個形狀爲「(37,16)」的數組,以產生一個形狀數組'(37,32)'。)我用一個解決方案更新了答案(37,32) '案例。 – mrry

+0

是的,顯然是32,對不起! 謝謝:) –