如何在tensorflow中重复可变次数的张量元素

如何在tensorflow中重复可变次数的张量元素,tensorflow,Tensorflow,我有一个输入张量,表示项目和项目数量之间的交替: [item0, qty0, item1, qty1, ...] 我想把这个张量展开到 [[item0*qty0], [item1*qty1], ...] 例如: [1000, 2, 3000, 5, ...] [[100,1000], [3000,3000,3000,3000,3000], ...] 这是在tensorflow 1.x中,顺便说一句。在tf1.x版本中 导入tensorflow作为tf 输入=tf常数[10,2,20,3,

我有一个输入张量,表示项目和项目数量之间的交替:

[item0, qty0, item1, qty1, ...]
我想把这个张量展开到

[[item0*qty0], [item1*qty1], ...]
例如:

[1000, 2, 3000, 5, ...]

[[100,1000], [3000,3000,3000,3000,3000], ...]
这是在tensorflow 1.x中,顺便说一句。

在tf1.x版本中

导入tensorflow作为tf 输入=tf常数[10,2,20,3,30,4] x_unpacket=tf.未堆叠tf.重塑输入,-1,2 tmp=[] 对于未包装的t in x_: tmp.appendtf.tile[t[0]],[t[1]] ans=tf.concattmp,轴=0 将tf.Session作为SES: 鲁南印刷厂 [10 10 20 20 20 30 30 30 30] 在tf2.x中,它可以是一行

tf.concat[tf.tile[x[0]],[x[1]]表示tf.reformateInputs中的x,-1,2],轴=0 [10 10 20 20 20 30 30 30 30]
我从zihaozhihao给出的答案开始,但由于输入有维度,长度未知,因此tf.unstack不起作用

但是,建议使用map_fn并显示一条似乎有效的错误消息:

x_unpacked = tf.reshape(input, (-1, 2))
tiled = tf.map_fn(lambda x: tf.tile([x[0]], [x[1]]), x_unpacked)

map_fn不适用于我,它将出现不兼容的形状错误。现在我尝试运行一个会话,这里实际上也是这样:-/