首页 > 解决方案 > Tensorflow:获取 4D 张量的最大条目

问题描述

我有一个名为“标签”的张量,形状为 [-1, 256, 256, 10],其中包括大小为 256x256 的标记图像,从中我得到最后一个维度的三个最大条目,其中包含“tf.math.top_k”。

现在我想提取三个最大的条目,并使其每个都成为形状 [-1,256,256,1] 的张量,以将其显示为张量板中的图像。

该代码似乎有效,只是它没有给我每个批次的最大条目,而只是批次中的最后一个元素。

Y = tf.placeholder_with_default(targets, shape=None, name="label")
labels = tf.reshape(Y, [-1, 256, 256, 10])
hot_labels = tf.reduce_max(labels,(1,2),keepdims=True)

top3_val,top3_idx = tf.nn.top_k(hot_labels,3)
top3_idx = tf.transpose(tf.squeeze(top3_idx))

top_labels0 = tf.gather(labels,top3_idx[0,-1],axis=-1)
top_labels0 = tf.reshape(top_labels0,[-1,256,256,1])

top_labels1 = tf.gather(labels,top3_idx[1,-1],axis=-1)
top_labels1 = tf.reshape(top_labels1,[-1,256,256,1])

top_labels2 = tf.gather(labels,top3_idx[2,-1],axis=-1)
top_labels2 = tf.reshape(top_labels2,[-1,256,256,1])

最终目标是找到“标签”的最后三个最大条目,并在 tensorflow 中将它们显示为大小为 [-1,256,256,1] 的图像。

标签: pythontensorflowconv-neural-networksemantic-segmentation

解决方案


推荐阅读