(# images) x (# grid cells) x (5)
的形式投射的。tf.gather
)。通过这种方式,我获得了包含相关对象的网格单元格。由于结构的不规则性(沿着每个维度的元素数量不同),我发现很难想出一种处理这种嵌套结构的方法。通常情况下,我只是循环并切片NumPy数组直到作业完成,但TensorFlow似乎不允许这样做(循环None
dims,切片等)。
我尝试过的一些事情:
tf.range
在预测的第一维(图像数)上运行简单而简单的循环,然后对输入进行切片(例如slice = labels[i]
或类似)。我后来会发现各种错误,对我来说没有意义(就像TypeError: Value passed to parameter 'begin' has DataType float32 not in list of allowed values: int32, int64
,即使输入是int32
...)。tf.stack
将各种输入张量组织成嵌套张量,将其传递到我的损失函数中,并使用tf.unstack
循环遍历批处理中的每个图像。 TensorFlow引发了关于维度不相等的错误tf.scan
和tf.map
,循环嵌套张量的第一维(即批量图像)。同样,我无法在第一时间构建嵌套张量如何正确处理None
尺寸的嵌套结构?
编辑/注意:我知道如何使其仅适用于单个图像(即不在第一维上循环),因此任何解决方案都可以反复调用calculate_loss_function(x, y, z)
批量中的每个图像。