下午好, 我有一个卷积神经网络,用6类一批图像进行像素分类。我想将超像素算法(opencv中的算法)应用于网络的输出。实际上,超级像素将根据输入图像计算,然后对于网络输出中的每个超像素位置,我将计算输出类的模式,以便为输入图像的每个超像素具有相同的输出类。 由于在前馈传递期间网络的输出是[batch,w,h,6]大小张量,我正在考虑将张量重新整形为[batch * w,h,6]然后迭代每个类(对于我在范围(6)中并为每个超像素计算该类的模式,然后重新塑造回原始大小。
我在基于numpy的脚本中编写代码应该是这样的:
for i in range ( number of superpixels):
for j in range(number of classes=6):
mask = superpixel_location[i]
net_new_output[:,:,j][mask] = mode(net_output[:,:,j][mask])
虽然这在numpy中编码肯定很容易,但我在尝试在tensorflow中执行它时遇到问题,因为我不知道如何实现for循环或如何管理它们。
你可以帮帮我吗?谢谢,
MC