jea*_*ean 5 python image-processing tensorflow
Tensorflow具有大量的变换,可以应用于表示图像([高度,宽度,深度])的3D张量,例如tf.image.rot90()或者tf.image.random_flip_left_right().
我知道它们意味着与队列一起使用,因此它们只能在一个图像上运行.
但是有没有办法对ops进行矢量化以将4D张量([batch_size,height,width,depth])转换为相同尺寸张量,并且沿着第一维应用图像,而不用明确地循环它们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])
Run Code Online (Sandbox Code Playgroud)
编辑2:事实证明这个问题已经被回答了很多次(一个例子),map_fn如果你想要一个优化的版本,它似乎是要走的路.我已经看过了,但我已经忘记了.我想这会让这个问题重复......
然而,对于随机op或更复杂的op,有一个通用方法来矢量化现有函数会很好...)
试试tf.map_fn.
processed_images = tf.map_fn(process_fn, images)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1306 次 |
| 最近记录: |