我遇到了将中间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_rows
和nb_cols
是已知整数时,我可以重塑X
而不会有任何问题。但是,在我的应用程序中,我需要处理案例
nb_rows = nb_cols = None
我该怎么办?我试过Y = tf.reshape( X, (-1, -1, nb_filters))
,但显然无法工作。
对我来说,这个操作是确定性的,因为它总是将两个中轴挤压成一个,同时保持第一个轴和最后一个轴不变。任何人都可以帮助我吗?
答案 0 :(得分:2)
在这种情况下,您可以通过X
访问tf.shape(X)
的动态形状:
shape = tf.shape(X)
Y = tf.reshape(X , [shape[0], shape[1]*shape[2], shape[3]])