【发布时间】:2017-07-31 18:36:51
【问题描述】:
我有一种情况,我有一批图像,并且在每个图像中我必须对该图像中的一个小块执行一些操作。现在的问题是批次中每个图像的补丁大小是可变的。所以这意味着我无法对其进行矢量化。我可以通过考虑图像中的整个像素范围来进行矢量化,但是每个图像的补丁大小实际上只是很小的一部分,我不想通过执行操作并存储每个图像中所有像素的结果来浪费我的内存.
简而言之,我需要使用循环。现在我看到 tensorflow 只定义了一个 while 循环,没有 for 循环。所以我的问题是,如果我使用普通的 python 样式的循环来对我的张量执行操作,autodiff 会无法计算我图中的梯度吗?
【问题讨论】:
-
应该没问题,虽然图表会更大(有 2GB 图表大小限制)
-
@YaroslavBulatov ,感谢您的回复!两个后续问题 - 一个。 2GB 大小;是针对整个图还是针对图中的单个张量(一个节点)?湾。如果正常的 for 循环有效,那么张量流引入 tf.while_loop 是否有原因?只是为了让后端的事情更有效率吗?
标签: machine-learning tensorflow computer-vision deep-learning autodiff