如何将张量重塑为占位符的形状?
a = tf.placeholder(shape=[None, None, 48])
h, w, c = a.shape
b = tf.reshape(a, shape=[-1, 4, 4, 3]) # flatten the first two dimension and expand the last dimension
# do something
c = tf.reshape(b, shape=[h, w, 3]) # reshape back to the shape of a, but error occurs
我想将张量b
恢复为占位符a
的形状。
答案 0 :(得分:3)
a
具有在图形构造时未知的动态形状,因此您需要转向tensorflow操作,更具体地说,转向(动态)张量形状的tf.shape
。 / p>
因此,在您的示例中,您可以使用例如。
s = tf.shape(a)
c = tf.reshape(b, shape=[s[0], s[1], 3])