通过重复最后一个元素(张量流)填充张量



我有一个以下形状的视频帧张量(frames, 128, 128, 3)其中帧在 25 到 36 之间变化。现在我希望张量的大小固定,(36, 128, 128, 3)通过重复最后一帧36-frames次。

我可以通过以下方式提取形状为 (128, 128, 3) 的最后一帧:

shape = tf.shape(video) last_frame = tf.gather_nd(video, [shape[0]-1])

我现在想重复 36-shape[0] 次,并在 video 结束时添加它.我该怎么做?

谢谢。

您可以通过选择最后一个元素,使用 tf.tile 复制 n 次,然后连接结果来做到这一点。

last = frames[-1]
last_35 = tf.tile(tf.expand_dims(last, 0), [35-tf.shape(frames)[0] ,1,1,1])
frames = tf.concat([frames, last_35], 0)

您可以使用tf.concat((连接张量列表,tf.tile((通过多次复制输入来创建新的张量,tf.reshape((

tf.concat([video, tf.reshape(tf.tile(last_frame], 36 - shape[0]), [128, 128, 3]), 0)

最新更新