我目前正在加载张量流中的数据集,该数据集由小视频序列(约30帧)而不是GIF/MPEG
组成,它们以JPEG
格式提供它们。一个图像由20-30帧水平堆叠组成。
现在我使用tf.image.decode_jpeg
加载TF图像。
图像的宽度为64像素(固定),高度为64 * number_of_frames,因此整体形状为(64*number_of_frames,64,3)
。
有没有很好的方法将其转换为(number_of_frames,64,64,3)
张量?
跟进:如果视频太短,我想重复最后一帧,这样所有样本的帧数都相同,导致(some_const,64,64,3)
张量。
谢谢!
答案 0 :(得分:0)
也许像
tf.transpose(tf.reshape(input, [64, 64, number_of_frames, 3]), perm=[2, 0, 1, 3]))
会奏效。我嵌套了两件事:首先将第二维分解为大小为64和number_of_frames的两个维度,然后我将维度置换为与(64,64*number_of_frames,3)
排序匹配。
警告:根据您的数据的组织方式,您可能希望将[64, 64, number_of_frames, 3]
更改为[64, number_of_frames, 64, 3]
,将[2, 0, 1, 3]
更改为[1, 0, 2, 3]
。
答案 1 :(得分:0)
您可以像这样使用tf.transpose和tf.reshape,
summarise