Neural network 如何微调FCN-32s进行交互式对象分割

Neural network 如何微调FCN-32s进行交互式对象分割,neural-network,deep-learning,caffe,image-segmentation,conv-neural-network,Neural Network,Deep Learning,Caffe,Image Segmentation,Conv Neural Network,我试图在CVPR论文()中实现提议的模型,其中数据集包含每个输入样本的5个通道: 1.红色 2.蓝色 3.绿色 4.与正点击相关的欧几里德距离图 5.与负面点击相关的欧几里德距离图(如下所示): 为此,我应该使用“对象二进制掩码”作为标签对FCN-32s网络进行微调: 如您所见,在第一个conv层中,我有两个额外通道,因此我进行了净手术,为前3个通道使用预训练参数,为2个额外通道使用Xavier初始化 对于FCN体系结构的其余部分,我有以下问题: 我是否应该冻结“fc6”之前的所有层(第

我试图在CVPR论文()中实现提议的模型,其中数据集包含每个输入样本的5个通道:

1.红色

2.蓝色

3.绿色

4.与正点击相关的欧几里德距离图

5.与负面点击相关的欧几里德距离图(如下所示):

为此,我应该使用“对象二进制掩码”作为标签对FCN-32s网络进行微调:

如您所见,在第一个conv层中,我有两个额外通道,因此我进行了净手术,为前3个通道使用预训练参数,为2个额外通道使用Xavier初始化

对于FCN体系结构的其余部分,我有以下问题:

  • 我是否应该冻结“fc6”之前的所有层(第一个conv层除外)?如果是,如何学习第一次conv的额外通道?在训练过程中,坡度是否足以达到第一个conv层

  • “fc6”的内核大小应该是多少?我应该保留7个吗?我在“Caffe net_手术”笔记本中看到,它取决于最后一层(“pool5”)的输出大小

  • 主要问题是“score_fr”和“upscore”层的输出数量,因为我没有进行类分割(20个类和背景使用21个),我应该如何更改它?2个怎么样?(一个用于对象,另一个用于非对象(背景)区域)

  • 我是否应该将“裁剪”图层“偏移”更改为32以获得中心裁剪

  • 如果更改这些层中的每一层,对它们来说,最佳的初始化策略是什么?“双线性”代表“upscore”,其余代表“Xavier”

  • 我应该将二进制标签矩阵值转换为零中心({-0.5,0.5})状态,还是可以将它们与{0,1}中的值一起使用

  • 任何有用的想法都将受到赞赏

    附言:
    我使用欧几里德损失,而我使用“1”作为“score\u fr”和“upscore”层的输出数。如果我用2,我想应该是softmax

    我可以回答你的一些问题

  • 渐变将到达第一层,因此即使冻结其他层,也应该可以学习权重

  • num\u输出更改为2并微调。你应该得到一个好的输出

  • 我认为您需要对每个选项进行实验,看看其准确性如何

  • 可以使用值0,1


  • 感谢您的重播,目前我使用的是欧几里德损失,因此我认为我的分数层应该只有一个输出(网络预测,这是我损失层的第一个输入),经过一些训练迭代后,我检查了结果,似乎网络将了解我的预期。但损失函数有点压倒性。据我所知,这是小批量所有样本的归一化欧几里德距离。由于我不能使用大于8的批处理大小,因此很自然会出现严重的损失不稳定性。您应该使用softmax损失。它旨在用于分类问题,但分割不是真正的像素级分类在这种情况下,我是否应该使用两个标签,一个用于对象,另一个与第一个标签相反用于背景?无需。Softmax loss应该会自动为您做到这一点。看看FCN培训网。他们使用的是softmax损耗层。是的,我以前见过,但我想我可能需要另一个损耗层,非常感谢。