Python TF:水平堆叠图像到视频的康纳张量(3D到4D)
我目前正在以tensor flow加载一个数据集,该数据集由小视频序列(约30帧)组成,而不是Python TF:水平堆叠图像到视频的康纳张量(3D到4D),python,tensorflow,deep-learning,Python,Tensorflow,Deep Learning,我目前正在以tensor flow加载一个数据集,该数据集由小视频序列(约30帧)组成,而不是GIF/MPEG,它们以JPEG格式提供。一幅图像由水平堆叠的20-30帧组成 现在我使用TF.image.decode\u jpeg加载带有TF的图像。 图像的宽度为64像素(固定),高度为64*帧数,因此整体形状为(64*帧数,64,3) 有没有什么好方法可以把它转换成一个(帧数,64,64,3)张量 后续:如果视频太短,以至于所有样本都具有相同的帧数,导致出现(某些常数,64,64,3)张量,我还
GIF/MPEG
,它们以JPEG
格式提供。一幅图像由水平堆叠的20-30帧组成
现在我使用TF.image.decode\u jpeg
加载带有TF的图像。
图像的宽度为64像素(固定),高度为64*帧数,因此整体形状为(64*帧数,64,3)
有没有什么好方法可以把它转换成一个(帧数,64,64,3)
张量
后续:如果视频太短,以至于所有样本都具有相同的帧数,导致出现(某些常数,64,64,3)
张量,我还想重复最后一帧
谢谢 可能类似于
tf.transpose(tf.reshape(input, [64, 64, number_of_frames, 3]), perm=[2, 0, 1, 3]))
会有用的。我嵌套了两件事:首先将第二个维度分解为大小为64和帧数的两个维度,然后排列维度以匹配(64,64*帧数,3)
顺序
警告:根据数据的组织方式,您可能希望将[64,64,帧数,3]
更改为[64,帧数,64,3]
和[2,0,1,3]
更改为[1,0,2,3]
可能类似
tf.transpose(tf.reshape(input, [64, 64, number_of_frames, 3]), perm=[2, 0, 1, 3]))
会有用的。我嵌套了两件事:首先将第二个维度分解为大小为64和帧数的两个维度,然后排列维度以匹配(64,64*帧数,3)
顺序
警告:根据数据的组织方式,您可能希望将
[64,64,帧数,3]
更改为[64,帧数,64,3]
和[2,0,1,3]
更改为[1,0,2,3]
您可以这样使用tf.transpose和tf.reforme
tf.reshape(tf.transpose(x, perm=[1, 0, 2]), [-1, 64, 64, 3])
你可以这样使用tf.transpose和tf.reforme
tf.reshape(tf.transpose(x, perm=[1, 0, 2]), [-1, 64, 64, 3])
请注意,张量形状中的前64个是高度,因为tensorflow将图像读取为张量,分别为
(H、W、C)
或高度、宽度、通道。因此,您对“hight是64*帧数”的解释是是错误的。请注意,张量形状中的前64个是高度,因为tensorflow将图像读取为张量,分别为(H,W,C)
或高度、宽度、通道。因此,您对“hight是64*帧数”的解释是错误的。请添加更多上下文。这段代码是做什么的?它是如何工作的?请添加更多的上下文。这段代码是做什么的?它是如何工作的?