Open sorryandbyebye opened 9 months ago
Add
和Cat
都可以。如果用Cat
则需要Cat
完了之后使用Conv
进行降维操作,也会增加参数量和计算量。我为了简单使用了Add
操作。
请问你这个分数是IoU还是DSC?DSC我的实验数据能到90左右。我做过相关实验(可能并非全部),结果是更好的,而且差距没有你这个这么大。你在做消融实验时应该保证Backbone
一致(包括网络层数,输出通道数)。U-Net
其实是简化版的VGG
作为backbone。你可以试试ISIC segmentation
的相关训练步骤。
By the way, 你这个81的score,无论是DSC和IoU都偏低了, 我记得我当时的实验没有到过这个数据。
由于最近一段时间在外面忙于其他事物, 我会抽时间检查repo看相关的代码是否已经上传。谢谢。
十分感谢您的回复 我的分数是DSC,可能是我训练设置(学习率等)的原因,我感觉我训练的所有模型分数普遍偏低。我会重新训练这些分数很低的模型。
可以问一下您Unet加上SDI模块的代码嘛?
我再check一下repo里看看有没有相关代码。
您好!我有几个问题想提问~ 1、为什么您的跳跃连接是用add操作,而不是用cat呢?
2、我在ISIC2018数据集上测试,使用pvt encoder的unet(姑且称为pvt-Unet)结果似乎不如unet,但是pvt-Unet结合SDI模块(也就是您文章中提出的Unet_v2)的结果远远好于unet这是什么原因呢?
3、我在ISIC2018数据集上测试,使用Unet结合SDI模块的结果似乎不如unet,但是pvt-Unet结合SDI模块(也就是您文章中提出的Unet_v2)的结果远远好于unet这是什么原因呢?
不知您是否做过这两个消融实验?能否向您要份相关代码?
下面是我的结果,实验设置是adam(0.5,0.999),lr=0.001,lr每10回合衰减为原来的0.1倍
希望能得到您的指导和回复~
这是我用来实验的pvt-Unet代码 ` class transEncoderUNet(nn.Module): """ use SpatialAtt + ChannelAtt """ def init(self, channel=32, n_classes=1, deep_supervision=True, pretrained_path=None): super(transEncoderUNet,self).init() self.deep_supervision = deep_supervision
`
这是我用来实验的Unet+SDI代码
` class SDIUnet(nn.Module): def init(self, n_channels=3, n_classes=1): super(SDIUnet, self).init()
`