torch项目的理解

理解内容

损失寻找

大佬github项目地址:点击
从train_net_step.py文件开始,

main()

main从line 138开始,这里重点关注损失,
line 256 调用了一个类,来源于

maskRCNN = Generalized_RCNN()
from modeling.model_builder import Generalized_RCNN

类的定义在lib/modeling/model_builder.py文件 line 71处

class Generalized_RCNN(nn.Module):

要计算损失的框从model_builder.py
line 189处传入

loss_rpn_cls, loss_rpn_bbox = rpn_heads.generic_rpn_losses(**rpn_kwargs)

generic_rpn_losses()会再调用下一子计算过程
rpn_kwargs数据来源于

rpn_kwargs.update(dict(
                (k, rpn_ret[k]) for k in rpn_ret.keys()
                if (k.startswith('rpn_cls_logits') or k.startswith('rpn_bbox_pred'))
            ))

然后找 rpn_ret,它来自于line 157的

rpn_ret = self.RPN(blob_conv, im_info, roidb)

RPN()是来自于

rpn_heads.generic_rpn_outputs(
                self.Conv_Body.dim_out, self.Conv_Body.spatial_scale)

Conv_Body来自于
self.Conv_Body = get_func(cfg.MODEL.CONV_BODY)()
它是用来选择模型进行卷积神经网络的backbone类型,这个在敲train命令时指定的文件里有,类似于:

CONV_BODY: FPN.fpn_ResNet50_conv5_body

这个 spatial_scale来自于 self.Conv_Body.spatial_scale = self.Conv_Body.spatial_scale[-self.num_roi_levels:]
也就是:

self.num_roi_levels = cfg.FPN.ROI_MAX_LEVEL - cfg.FPN.ROI_MIN_LEVEL + 1

5-2+1等于4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值