FCN 中的 patch-wise 训练和全卷积训练
patch-wise training and fully convolutional training in FCN
在FCN paper中,作者讨论了patch wise training和fully convolutional training。这两者有什么区别?
请参考以下附件section 4.4
。
在我看来,训练机制如下,
假设原始图像是 M*M
,然后迭代 M*M
像素以提取 N*N
块(其中 N<M
)。迭代步幅可以像 N/3
这样的数字来生成重叠的补丁。此外,假设每张图像对应 20 个补丁,那么我们可以将这些 20
个补丁或 60
个补丁(如果我们想要 3 张图像)放入一个小批量中进行训练。这种理解对吗?在我看来,这个所谓的fully convolutional training和patch-wise training是一样的
术语"Fully Convolutional Training"只是意味着用卷积层代替全连接层,这样整个网络就只包含卷积层(和池化层)。
术语"Patchwise training"旨在避免完整图像训练的冗余。
在语义分割中,假设您要对图像中的每个像素进行分类,通过使用整个图像,您会在输入中添加大量冗余。在训练分割网络期间避免这种情况的标准方法是向网络提供来自训练集中的成批随机补丁(感兴趣对象周围的小图像区域)而不是完整图像。这 "patchwise sampling" 确保输入具有足够的方差并且是训练数据集的有效表示(小批量应与训练集具有相同的分布)。此技术还有助于更快地收敛并平衡 类。在这篇论文中,他们声称没有必要使用 patch-wise 训练,如果你想平衡 类 你可以对损失进行加权或采样。
从另一个角度来看,全图训练在逐像素分割中的问题是输入图像有很多空间相关性。要解决此问题,您可以从训练集中采样补丁(按补丁训练)或从整个图像中采样损失。这就是为什么该小节被称为 "Patchwise training is loss sampling" 的原因。
因此 "restricting the loss to a randomly sampled subset of its spatial terms excludes patches from the gradient computation." 他们通过随机忽略最后一层的细胞来尝试 "loss sampling" 这样就不会在整个图像上计算损失。
在FCN paper中,作者讨论了patch wise training和fully convolutional training。这两者有什么区别?
请参考以下附件section 4.4
。
在我看来,训练机制如下,
假设原始图像是 M*M
,然后迭代 M*M
像素以提取 N*N
块(其中 N<M
)。迭代步幅可以像 N/3
这样的数字来生成重叠的补丁。此外,假设每张图像对应 20 个补丁,那么我们可以将这些 20
个补丁或 60
个补丁(如果我们想要 3 张图像)放入一个小批量中进行训练。这种理解对吗?在我看来,这个所谓的fully convolutional training和patch-wise training是一样的
术语"Fully Convolutional Training"只是意味着用卷积层代替全连接层,这样整个网络就只包含卷积层(和池化层)。
术语"Patchwise training"旨在避免完整图像训练的冗余。 在语义分割中,假设您要对图像中的每个像素进行分类,通过使用整个图像,您会在输入中添加大量冗余。在训练分割网络期间避免这种情况的标准方法是向网络提供来自训练集中的成批随机补丁(感兴趣对象周围的小图像区域)而不是完整图像。这 "patchwise sampling" 确保输入具有足够的方差并且是训练数据集的有效表示(小批量应与训练集具有相同的分布)。此技术还有助于更快地收敛并平衡 类。在这篇论文中,他们声称没有必要使用 patch-wise 训练,如果你想平衡 类 你可以对损失进行加权或采样。 从另一个角度来看,全图训练在逐像素分割中的问题是输入图像有很多空间相关性。要解决此问题,您可以从训练集中采样补丁(按补丁训练)或从整个图像中采样损失。这就是为什么该小节被称为 "Patchwise training is loss sampling" 的原因。 因此 "restricting the loss to a randomly sampled subset of its spatial terms excludes patches from the gradient computation." 他们通过随机忽略最后一层的细胞来尝试 "loss sampling" 这样就不会在整个图像上计算损失。