MMSegmentation遇到的问题汇总(不断更新)

首先说明一下我的运行环境是在win10下的

遇到的第一个问题就是在训练的时候不知道在哪里能运行模型,后来参考mmsegmentation文档才明白该在哪里进行train,具体的train文件是在tools下面的train文件

MMSegmentation遇到的问题汇总(不断更新)_第1张图片

为了方便起见我并没有在命令行配置参数,而是直接修改train文件

MMSegmentation遇到的问题汇总(不断更新)_第2张图片

config我默认的default是我自己根据数据集对原模型进行修改而得到的,当然也可以直接用config里面的模型文件,workdir是输出的log文件路径

MMSegmentation遇到的问题汇总(不断更新)_第3张图片

同时数据集文件里面我用的直接路径,并没有进行连接,也一样可以对数据集进行训练,而另外一些其他的参数需要在你选择使用的模型文件进行修改了,这里我们以fcn为例。

MMSegmentation遇到的问题汇总(不断更新)_第4张图片 

 我们可以看到fcn里面有很多模型,r50指的是backbone使用resnet50模型,80k指的是迭代次数,在mmseg里面没有用epoch而是用的iter,区别在于iter是一个batchsize输入到网络的次数,而epoche是所有的数据遍历的次数。  

MMSegmentation遇到的问题汇总(不断更新)_第5张图片

首先第一个normcfg,因为我是单卡训练,因此改成了BN,下面主要有三个结构,分别是主干网络backbone,主解码头decode_head以及辅助解码头aux_head,numstage是主干网络生成特征图的数目,dilation为空洞率,其他都是一些比较基础甚至不太需要变的参数,loss_decode这里有两个,分别是辅助解码以及主解码的损失函数,主解码占的比重比较大,而辅助损失比较小,这里如果想修改损失函数的话,可以采用如下修改方式

loss_decode=[dict(type='CrossEntropyLoss', loss_name='loss_ce', loss_weight=1.0,class_weight=[0.001,1]),
            dict(type='DiceLoss', loss_name='loss_dice', loss_weight=3.0,class_weight=[0.001,1])]

而如果想每轮都进行验证集评价,需要在workflow里面加入val

 

同时在base文件里面

MMSegmentation遇到的问题汇总(不断更新)_第6张图片

对于val_step函数做出如下修改,就可以显示验证集的数据了

MMSegmentation遇到的问题汇总(不断更新)_第7张图片 

 

你可能感兴趣的:(计算机视觉,深度学习,python,神经网络)