如何重塑具有多个“None”维度的张量?

How to reshape a tensor with multiple `None` dimensions?

我在将中间 4D 张量流张量 X 重塑为 3D 张量 Y 时遇到问题,其中

当然,当nb_rowsnb_cols是已知整数时,我可以毫无问题地重塑X。但是,在我的应用程序中,我需要处理这种情况

nb_rows = nb_cols = None

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

对我来说,这个操作是确定性的,因为它总是将两个中间轴压缩成一个,同时保持第一个轴和最后一个轴不变。谁能帮帮我?

在这种情况下,您可以通过 tf.shape(X):

访问 X 的动态形状
shape = [tf.shape(X)[k] for k in range(4)]
Y = tf.reshape(X, [shape[0], shape[1]*shape[2], shape[3]])