U-Net复制和裁切

时间:2018-10-30 16:27:48

标签: python-3.x deep-learning

我对Unet架构图中的复制和裁剪箭头有疑问:enter image description here

我了解从签约和转移到昂贵路径的实现,但是我没有获得这些内部连接。复制和裁剪意味着什么,该操作带来了什么好处?这就像ResNet中的跳过连接吗?

4 个答案:

答案 0 :(得分:0)

Drozdal等人已经研究了长跳过连接(用于那些长连接的术语)的好处。 (https://arxiv.org/pdf/1608.04117.pdf)并已显示可改善梯度流,因此使权重矩阵的值保持稳定。这是一种波浪形的解释,但这是我们得到的最好的解释。但是,它确实可以提高细分任务的结果。

在此示例中使用了裁剪操作,这是由于作者使用了有效的卷积,这会减小输出大小,因此尺寸不再适合。在Tensorflow中,您将使用类似tf.image.resize_images的方式来获得与扩展部分中的要素图相同的高度宽度尺寸,然后使用tf.concat沿通道轴(通常是第4轴)连接要素图。 BHWC布局)。

答案 1 :(得分:0)

它与ResNet中的跳过连接类似,但有所不同。

架构差异: 在ResNet中,跳过连接是在计算激活之前将前一个块的激活添加到下一个块。这些残差块通过添加前一个块的输出来跳过中间连接。

在U-net中,激活或功能图被合并或串联。

复制或串联的原因: 由于这是下采样时的分割问题,因此空间信息会丢失。如您所见,它以572x572开始,并缩小为28x28。为了重新获得空间信息或将其映射回去,将来自先前图层的特征图进行了级联。 如果您在上采样路径中观察到白色块,则是下采样路径中的特征图。

作物原因: 现在,由于两个要素地图的分辨率不同,因此合并时会对其进行裁剪。在将(572x572)与(392x392)串联之前,需要先对其进行裁剪。

唯一的相似之处是利用先前计算的激活,但原因不同。

答案 2 :(得分:0)

调整形状张量的大小 (m=batches, h=height, w=width, f=#filters) 使用

tf.compat.v1.image.resize_bilinear

tf.image.crop_and_resize

答案 3 :(得分:0)

简而言之,我们复制深度未增加的图像,并对其进行裁剪以使其适合深度已增加的图像。

它的主要用途是保留当我们增加深度并转到宽高小深度大的图像时丢失的特征。

现在我们在升级时对特征实际上属于哪里知之甚少,所以要知道特征最初属于哪里,我们只是简单地复制了大而深度小的早期图像。就是这样,当我们增加深度时,我们失去了特征的位置属性,而为了重新获得它,我们只是在做这个 hack。

复制和裁剪不添加图像,它只是将图像一个放在另一个上,这意味着深度会进一步增加。