in scripts/utility/convert_pytorch_resnet.py [0:0]
def convert(model, structure, bottleneck):
out = dict()
num_convs = 3 if bottleneck else 2
# Initial module
copy_layer(model, out, "conv1", "mod1.conv1", CONV_PARAMS)
copy_layer(model, out, "bn1", "mod1.bn1", BN_PARAMS)
# Other modules
for mod_id, num in enumerate(structure):
for block_id in range(num):
for conv_id in range(num_convs):
copy_layer(model, out,
"layer{}.{}.conv{}".format(mod_id + 1, block_id, conv_id + 1),
"mod{}.block{}.convs.conv{}".format(mod_id + 2, block_id + 1, conv_id + 1),
CONV_PARAMS)
copy_layer(model, out,
"layer{}.{}.bn{}".format(mod_id + 1, block_id, conv_id + 1),
"mod{}.block{}.convs.bn{}".format(mod_id + 2, block_id + 1, conv_id + 1),
BN_PARAMS)
# Try copying projection module
try:
copy_layer(model, out,
"layer{}.{}.downsample.0".format(mod_id + 1, block_id),
"mod{}.block{}.proj_conv".format(mod_id + 2, block_id + 1),
CONV_PARAMS)
copy_layer(model, out,
"layer{}.{}.downsample.1".format(mod_id + 1, block_id),
"mod{}.block{}.proj_bn".format(mod_id + 2, block_id + 1),
BN_PARAMS)
except KeyError:
pass
return out