我有一个以下形状的视频帧张量(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)