【发布时间】:2016-11-23 01:10:36
【问题描述】:
Tensorflow 有大量可应用于表示图像([高度、宽度、深度])的 3D 张量的转换,例如 tf.image.rot90() 或 tf.image.random_flip_left_right()。
我知道它们旨在与队列一起使用,因此它们仅对一个图像进行操作。
但是有没有一种方法可以将操作向量化以将 4D 张量 ([batch_size,height,width,depth]) 转换为相同大小的张量,并且 op 沿第一维以图像方式应用,而无需使用 @ 明确循环它们987654324@?
(编辑:关于rot90(),从 numpy rot90 中提取的一个聪明的技巧是:
rot90=tf.reverse(x,tf.convert_to_tensor((False,False,True,False)))
rot90=tf.transpose(rot90,([0,2,1,3])
编辑 2: 事实证明,这个问题已经被回答了好几次了 (one example) 如果你想要一个优化的版本,似乎 map_fn 是要走的路。我已经看过了,但我忘记了。我想这会使这个问题重复......
但是对于随机运算或更复杂的运算,最好有一个通用的方法来矢量化现有函数...)
【问题讨论】:
标签: python image-processing tensorflow