重塑输出或 tf.gather(), tensorflow

reshape output or tf.gather(), tensorflow

我在 [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]set_shape?

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