擅长:python、mysql、java
<p>有几个答案-没有一个像map函数那么优雅。哪一个最好取决于你对记忆效率的渴望。</p>
<p>(a)您可以使用<code>enqueue_many</code>将它们放入<a href="http://www.tensorflow.org/api_docs/python/io_ops.html#FIFOQueue">^{<cd2>}</a>中,然后一次对图像进行出列和<code>tf.image.resize_image_with_crop_or_pad</code>,并将其全部压缩回一个大的smoosh中。这可能很慢。需要N个调用才能运行N个映像。</p>
<p>(b)您可以使用一个占位符feed并运行来调整它们的大小,然后在从原始数据源传入时对它们进行裁剪。从内存的角度来看,这可能是最好的选择,因为您永远不必将未经调整的数据存储在内存中。</p>
<p>(c)可以使用<a href="https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/control_flow_ops.py#L1077">^{<cd4>}</a>操作遍历整个批处理,并在<code>tf.Variable</code>中生成结果。特别是如果利用while允许的并行执行,这可能是最快的方法。</p>
<p>我可能会选择(c)选项,除非你想最小化内存使用,在这种情况下,在进入(b)的路上过滤它会是一个更好的选择。</p>