Exemple #1
0
    def __init__(self):
        self.model = 'models/r2d2_WASF_N16.pt'
        self.tag = 'r2d2'  # output file tag

        self.top_k = 2000  # number of keypoints

        self.scale_f = 2**0.25
        self.min_size = 256
        self.max_size = 1024
        self.min_scale = 0
        self.max_scale = 1

        self.reliability_thr = 0.7
        self.repeatability_thr = 0.7

        self.gpu = [0]
        self.iscuda = common.torch_set_gpu(self.gpu)
        self.net = None

        # load_network
        checkpoint = torch.load(self.model)
        print("\n>> Creating net = " + checkpoint['net'])
        net = eval(checkpoint['net'])
        nb_of_weights = common.model_size(net)
        #print(f"( Model size: {nb_of_weights/1000:.0f}K parameters )")
        # initialization
        weights = checkpoint['state_dict']
        net.load_state_dict(
            {k.replace('module.', ''): v
             for k, v in weights.items()})
        self.net = net.eval()
Exemple #2
0
def load_network(model_fn): 
    checkpoint = torch.load(model_fn)
    print("\n>> Creating net = " + checkpoint['net']) 
    net = eval(checkpoint['net'])
    nb_of_weights = common.model_size(net)
    print(f" ( Model size: {nb_of_weights/1000:.0f}K parameters )")

    # initialization
    weights = checkpoint['state_dict']
    net.load_state_dict({k.replace('module.',''):v for k,v in weights.items()})
    return net.eval()
Exemple #3
0
def load_network(model_fn):
    checkpoint = torch.load(model_fn)
    print("\n>> Creating net = " + checkpoint['net'])
    # checkpoint['net'] = "Quad_L2Net_ConfCFS()" 字符串
    # checkpoint['state_dict'] = Dict 存储网络的参数值
    net = eval(checkpoint['net'])
    # 这里就是执行函数 Quad_L2Net_ConfCFS() 返回一个网络
    nb_of_weights = common.model_size(net)
    print(f" ( Model size: {nb_of_weights / 1000:.0f}K parameters )")
    # 初始化
    weights = checkpoint['state_dict']
    # 这里将k(key,即层的名称)修改个名字后和k对应的一个数组重新组成一个新的dict
    net.load_state_dict(
        {k.replace('module.', ''): v
         for k, v in weights.items()})
    return net.eval()