2016-02-25 72 views
2

我有[None, 100, 5, 50]tf.gather(W,X)張量,我想它重塑到[None, 100, 250]) 但使用tf.reshape (even with tf.pack)顯示我,因爲圖形的動態方面的Dimension(None)錯誤。 有沒有什麼辦法可以首先重塑tensor [100,5,50]的內部,只要尺寸在圖中是已知的,然後使用的[None, 100, 250]重塑輸出或tf.gather(),tensorflow

回答

1

tf.reshape() op不理解局部形狀(即對於一個或多個維度具有None的那些形狀),因爲它們可能不明確:例如,對於部分形狀[None, None, 50]可能有許多可能的混凝土形狀。

但是,tf.reshape()也允許您指定一個作爲通配符,它​​將自動選擇,因此您可以在您的情況下使用它。要指定通配符,請使用-1作爲尺寸之一:

input = ... 
print input.get_shape() ==> [None, 100, 5, 50] 

reshaped = tf.reshape(input, [-1, 100, 250])