在yolov3中,例如配置文件对应为:ai_toolchain/horizon_model_train_sample/scripts/configs/detection/yolov3/pascalvoc_mobilenetv1.py
网络定义了如下模块,为什么只有backbone中插入了量化、反量化节点,neck、head中也有conv等操作,却没有插入量化节点。
model = dict(
type="YOLOV3",
backbone=dict(
type="MobileNetV1",
alpha=1.0,
bn_kwargs=bn_kwargs,
num_classes=num_classes,
include_top=False,
),
neck=dict(
type="YOLOV3Neck",
backbone_idx=[-1, -2, -3],
in_channels_list=[1024, 512, 256],
out_channels_list=[512, 256, 128],
bn_kwargs=bn_kwargs,
),
head=dict(
type="YOLOV3Head",
feature_idx=[-3, -2, -1],
in_channels_list=[1024, 512, 256],
num_classes=num_classes,
anchors=anchors,
bn_kwargs=bn_kwargs,
),
loss=dict(
type="YOLOV3Loss",
num_classes=num_classes,
anchors=anchors,
strides=[8, 16, 32],
ignore_thresh=0.5,
loss_xy=dict(type=torch.nn.BCELoss, reduce=False),
loss_wh=dict(type=torch.nn.L1Loss, reduce=False),
loss_conf=dict(type=torch.nn.BCELoss, reduction="sum"),
loss_cls=dict(type=torch.nn.BCELoss, reduction="sum"),
lambda_loss=[2.0, 2.0, 1.0, 1.0],
),
postprocess=dict(
type="YOLOV3PostProcess",
anchors=anchors,
strides=[8, 16, 32],
num_classes=num_classes,
score_thresh=0.01,
nms_thresh=0.45,
topK=200,
),
)