def step1(pt, model, WPQ, check_exist=False):
    print(pt)
    net = Net(pt, model, noTF=1)
    model = net.finalmodel(WPQ) # loads weights into the caffemodel - by Mario
    if 1:#TODO: Consider adding a configuration paramter to cfgs.py in order to control whether or not to prune the last conv layer -by Mario
        convs = net.convs
        redprint("including last conv layer!")
    else:
        convs = net.convs[:-1]
        redprint("ignoring last conv layer!")
    if dcfgs.dic.option == 1:
        if DEBUG: redprint("This line executed because dcfgs.dic.option is set to 1 [train.step1()]")
        sums = net.type2names('Eltwise')[:-1]
        newsums = []
        for i in sums:
            if not i.endswith('block8_sum'):
                newsums.append(i)
        newconvs = []
        for i in convs:
            if i.endswith('_proj'):
                newconvs.insert(0,i)
            else:
                newconvs.append(i)
        convs = newsums + newconvs
    else:
        convs += net.type2names('Eltwise')[:-1] # I guess Element-wise operations are included in ResNet or Xception -by Mario
    if dcfgs.dic.fitfc:
        convs += net.type2names('InnerProduct')
    if dcfgs.model in [cfgs.Models.xception,cfgs.Models.resnet]:
        for i in net.bns:
            if 'branch1' in i:
                convs += [i]
    net.freeze_images(check_exist=check_exist, convs=convs)
    return {"model":model}
Exemplo n.º 2
0
def step1(pt, model, WPQ, check_exist=False):
    print(pt)
    net = Net(pt, model, noTF=1)
    model = net.finalmodel(WPQ)
    if 1:
        convs = net.convs
    else:
        convs = net.convs[:-1]
        redprint("ignoring last conv!")
    if dcfgs.dic.option == 1:
        sums = net.type2names('Eltwise')[:-1]
        newsums = []
        for i in sums:
            if not i.endswith('block8_sum'):
                newsums.append(i)
        newconvs = []
        for i in convs:
            if i.endswith('_proj'):
                newconvs.insert(0,i)
            else:
                newconvs.append(i)
        convs = newsums + newconvs
    else:
        convs += net.type2names('Eltwise')[:-1]
    if dcfgs.dic.fitfc:
        convs += net.type2names('InnerProduct')
    if dcfgs.model in [cfgs.Models.xception,cfgs.Models.resnet]:
        for i in net.bns:
            if 'branch1' in i:
                convs += [i]
    net.freeze_images(check_exist=check_exist, convs=convs)
    return {"model":model}