Cyril666's picture
First model version
6250360
from __future__ import absolute_import, division, print_function, unicode_literals
def add_archs(archs):
global MODEL_ARCH
for x in archs:
assert x not in MODEL_ARCH, "Duplicated model name {} existed".format(x)
MODEL_ARCH[x] = archs[x]
MODEL_ARCH = {
"default": {
"block_op_type": [
# stage 0
["ir_k3"],
# stage 1
["ir_k3"] * 2,
# stage 2
["ir_k3"] * 3,
# stage 3
["ir_k3"] * 7,
# stage 4, bbox head
["ir_k3"] * 4,
# stage 5, rpn
["ir_k3"] * 3,
# stage 5, mask head
["ir_k3"] * 5,
],
"block_cfg": {
"first": [32, 2],
"stages": [
# [t, c, n, s]
# stage 0
[[1, 16, 1, 1]],
# stage 1
[[6, 24, 2, 2]],
# stage 2
[[6, 32, 3, 2]],
# stage 3
[[6, 64, 4, 2], [6, 96, 3, 1]],
# stage 4, bbox head
[[4, 160, 1, 2], [6, 160, 2, 1], [6, 240, 1, 1]],
# [[6, 160, 3, 2], [6, 320, 1, 1]],
# stage 5, rpn head
[[6, 96, 3, 1]],
# stage 6, mask head
[[4, 160, 1, 1], [6, 160, 3, 1], [3, 80, 1, -2]],
],
# [c, channel_scale]
"last": [0, 0.0],
"backbone": [0, 1, 2, 3],
"rpn": [5],
"bbox": [4],
"mask": [6],
},
},
"xirb16d_dsmask": {
"block_op_type": [
# stage 0
["ir_k3"],
# stage 1
["ir_k3"] * 2,
# stage 2
["ir_k3"] * 3,
# stage 3
["ir_k3"] * 7,
# stage 4, bbox head
["ir_k3"] * 4,
# stage 5, mask head
["ir_k3"] * 5,
# stage 6, rpn
["ir_k3"] * 3,
],
"block_cfg": {
"first": [16, 2],
"stages": [
# [t, c, n, s]
# stage 0
[[1, 16, 1, 1]],
# stage 1
[[6, 32, 2, 2]],
# stage 2
[[6, 48, 3, 2]],
# stage 3
[[6, 96, 4, 2], [6, 128, 3, 1]],
# stage 4, bbox head
[[4, 128, 1, 2], [6, 128, 2, 1], [6, 160, 1, 1]],
# stage 5, mask head
[[4, 128, 1, 2], [6, 128, 2, 1], [6, 128, 1, -2], [3, 64, 1, -2]],
# stage 6, rpn head
[[6, 128, 3, 1]],
],
# [c, channel_scale]
"last": [0, 0.0],
"backbone": [0, 1, 2, 3],
"rpn": [6],
"bbox": [4],
"mask": [5],
},
},
"mobilenet_v2": {
"block_op_type": [
# stage 0
["ir_k3"],
# stage 1
["ir_k3"] * 2,
# stage 2
["ir_k3"] * 3,
# stage 3
["ir_k3"] * 7,
# stage 4
["ir_k3"] * 4,
],
"block_cfg": {
"first": [32, 2],
"stages": [
# [t, c, n, s]
# stage 0
[[1, 16, 1, 1]],
# stage 1
[[6, 24, 2, 2]],
# stage 2
[[6, 32, 3, 2]],
# stage 3
[[6, 64, 4, 2], [6, 96, 3, 1]],
# stage 4
[[6, 160, 3, 1], [6, 320, 1, 1]],
],
# [c, channel_scale]
"last": [0, 0.0],
"backbone": [0, 1, 2, 3],
"bbox": [4],
},
},
}
MODEL_ARCH_CHAM = {
"cham_v1a": {
"block_op_type": [
# stage 0
["ir_k3"],
# stage 1
["ir_k7"] * 2,
# stage 2
["ir_k3"] * 5,
# stage 3
["ir_k5"] * 7 + ["ir_k3"] * 5,
# stage 4, bbox head
["ir_k3"] * 5,
# stage 5, rpn
["ir_k3"] * 3,
],
"block_cfg": {
"first": [32, 2],
"stages": [
# [t, c, n, s]
# stage 0
[[1, 24, 1, 1]],
# stage 1
[[4, 48, 2, 2]],
# stage 2
[[7, 64, 5, 2]],
# stage 3
[[12, 56, 7, 2], [8, 88, 5, 1]],
# stage 4, bbox head
[[7, 152, 4, 2], [10, 104, 1, 1]],
# stage 5, rpn head
[[8, 88, 3, 1]],
],
# [c, channel_scale]
"last": [0, 0.0],
"backbone": [0, 1, 2, 3],
"rpn": [5],
"bbox": [4],
},
},
"cham_v2": {
"block_op_type": [
# stage 0
["ir_k3"],
# stage 1
["ir_k5"] * 4,
# stage 2
["ir_k7"] * 6,
# stage 3
["ir_k5"] * 3 + ["ir_k3"] * 6,
# stage 4, bbox head
["ir_k3"] * 7,
# stage 5, rpn
["ir_k3"] * 1,
],
"block_cfg": {
"first": [32, 2],
"stages": [
# [t, c, n, s]
# stage 0
[[1, 24, 1, 1]],
# stage 1
[[8, 32, 4, 2]],
# stage 2
[[5, 48, 6, 2]],
# stage 3
[[9, 56, 3, 2], [6, 56, 6, 1]],
# stage 4, bbox head
[[2, 160, 6, 2], [6, 112, 1, 1]],
# stage 5, rpn head
[[6, 56, 1, 1]],
],
# [c, channel_scale]
"last": [0, 0.0],
"backbone": [0, 1, 2, 3],
"rpn": [5],
"bbox": [4],
},
},
}
add_archs(MODEL_ARCH_CHAM)