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

2024-02-14

我遇到了重塑中间 4D 张量流张量的问题X到 3D 张量Y, where

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

当然,当nb_rows and nb_cols是已知的整数,我可以重塑X没有任何问题。然而,在我的申请中我需要处理这个案例

nb_rows = nb_cols = None

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

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


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

shape = [tf.shape(X)[k] for k in range(4)]
Y = tf.reshape(X, [shape[0], shape[1]*shape[2], shape[3]])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何重塑具有多个“无”维度的张量? 的相关文章

随机推荐