2016-11-07 32 views
5

例如,Tensorflow可以应用于表示图像([高度,宽度,深度])的3D张量的大量转换,例如tf.image.rot90()tf.image.random_flip_left_right()有没有办法在图像上有效地矢量化Tensorflow操作?

我知道它们是用于队列的,因此它们只对一个图像进行操作。

但是是否有办法将矢量化操作将4D张量([batch_size,height,width,depth])转换为相同大小的张量,op在第一维上按图像方式应用,而没有明确地循环tf.while_loop()

编辑:关于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是要走的路,如果你想要一个优化版本,我已经看到它,但我忘记了,我想这使得这个问题重复...

然而,对于随机操作或更复杂的操作它将是很好的有一个通用的方法来矢量化现有的功能...)

回答

5

尝试tf.map_fn

processed_images = tf.map_fn(process_fn, images) 
+0

谢谢!看起来很有前途! – jean

相关问题