我想在TensorFlow中使用此功能,但它在3D张量而不是4D张量上运行:我的外部维度为batch_size。
tf.image.random_flip_left_right(input_image_data)
也就是说,这个函数需要一个形状的张量(图像):
(width, height, channels)
但我有多张图片,例如:
(batch_size, width, height, channels)
我如何将随机翻转功能映射到我的批量大小的每个图像,并获得具有我已经拥有的相同4D形状的张量的输出?
我的猜测是它需要在函数的输入处重新整形并在函数后重新整形,但我不确定这是否会破坏数据的结构并将批处理中的图像混合在一起在应用镜子时。此外,这种方法可以在整个批次上进行单个随机化,而不是在每个图像的基础上进行。
任何建议都表示赞赏!
答案 0 :(得分:0)
您必须使用tf.pack和tf.unpack或tf.gather和tf.concatenate之类的东西将您的4D阵列转换为3D阵列。
根据您加载数据的方式,您可以在numpy中进行处理。另一种方法是在将每个图像放入批处理之前对其进行处理。
如果您需要解释tf.pack或其他人是如何工作的,请告诉我。