[2023年的每一天]1.5 跑通自己数据集修改模块

1.今天主要的任务是 跑通了 自定义数据集 可以跑自己标注的数据集进行实验应用啦

  1. 修改了一个模块 可以跑通了,如果在代码里面 写了代码 但是 下面forward的时候,没有使用到,可能会报错,尽量用到什么写什么就可以

  # ---------------------------

        self.gc128 = GlobalContextBlock(128,128)
        # self.gc64 = GlobalContextBlock(64,64) 这里不注释 下文没有使用到的时候  会报错

        # ---------------------------

        ## TODO: what is the number of mid chan ?
        self.head = SegmentHead(128, 1024, n_classes, up_factor=8, aux=False)
        if self.aux_mode == 'train':
            self.aux2 = SegmentHead(16, 128, n_classes, up_factor=4)
            self.aux3 = SegmentHead(32, 128, n_classes, up_factor=8)
            self.aux4 = SegmentHead(64, 128, n_classes, up_factor=16)
            self.aux5_4 = SegmentHead(128, 128, n_classes, up_factor=32)

        self.init_weights()

    def forward(self, x):
        size = x.size()[2:]
        feat_d = self.detail(x)
        feat2, feat3, feat4, feat5_4, feat_s = self.segment(x)
        

        # ----------------------------
        feat_d=self.gc128(feat_d)
        feat_s=self.gc128(feat_s)
        # feat5_4=self.gc128(feat5_4)

3.在bisenetv2进行实验的时候,如果只是想简单测试一下,已经修改的模块是否可以跑通的时候,可以把epoch设置成低一些,这样的话,方便进行修改,如果设置过高的话,中间进行强制停止的时候,再次运行的时候,会报端口占用的错误。

  1. 在每一个主干特征之后,使用了 扩大感受野的模块进行了操作代码可以跑通了 ,但是在修改细节分支的时候,出现了错误的操作,主要原因是 预训练的模型参数和 我刚刚修改的不一样了,所以出现了这个问题,需要把 下面的代码这部分修改一下子:



    def load_pretrain(self):
        state = modelzoo.load_url(backbone_url)
        for name, child in self.named_children():
            if name in state.keys():
                child.load_state_dict(state[name], strict=False) 修改这里为 False

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值