Detectron 源码解析-模型测试

源码文件:

  • detectron/core/test_engine.py

initialize_model_from_cfg() 函数

该函数会根据全局配置信息(global cfg)创建模型并对其进行初始化, 该函数的接受参数weights_file为一权重文件的路径信息. 其他参数采用全局配置文件中的设置.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def initialize_model_from_cfg(weights_file, gpu_id=0):
# 根据配置信息创建模型
model = model_builder.create(cfg.MODEL.TYPE, train=False, gpu_id=gpu_id)
# 根据创建的模型和给定的权重文件对网络进行初始化.
net_utils.initialize_gpu_from_weights_file(
model, weights_file, gpu_id=gpu_id
)
# TODO
model_builder.add_inference_input(model)
workspace.CreateNet(model.net)
workspace.CreateNet(model.conv_body_net)
if cfg.MODEL.MASK_ON:
workspace.CreateNet(model.mask_net)
if cfg.MODEL.KEYPOINTS_ON:
workspace.CreateNet(model.keypoint_net)
return model

该函数最开始使用全局配置信息cfg.MODEL.TYPE创建的一个模型引用model, 关于创建模型的的代码详细内容请查看模型创建源码解析. 然后利用网络工具文件(net_utils.py)initialize_gpu_from_weights_file()方法对模型进行初始化