重塑输出或 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])
我在 [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])