如何重塑多个“无”维度的张量?

时间:2017-10-31 00:08:17

标签: tensorflow reshape tensor

我遇到了将中间4D张量流量张量X重新整形为3D张量Y的问题,其中

  • X的形状为( batch_size, nb_rows, nb_cols, nb_filters )
  • Y的形状为( batch_size, nb_rows*nb_cols, nb_filters )
  • batch_size = None

当然,当nb_rowsnb_cols是已知整数时,我可以重塑X而不会有任何问题。但是,在我的应用程序中,我需要处理案例

nb_rows = nb_cols = None

我该怎么办?我试过Y = tf.reshape( X, (-1, -1, nb_filters)),但显然无法工作。

对我来说,这个操作是确定性的,因为它总是将两个中轴挤压成一个,同时保持第一个轴和最后一个轴不变。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

在这种情况下,您可以通过X访问tf.shape(X)的动态形状:

shape = tf.shape(X)
Y = tf.reshape(X , [shape[0], shape[1]*shape[2], shape[3]])