def resize_network(netdef, name2num, verbose=True): """Change number of channels in convolutions netdef: network params name2num: maps from channel name to new number of channels verbose: if True, display changes """ new_layers = [] for l in netdef.layer: newl = LayerParameter() newl.CopyFrom(l) if (l.name in name2num): if (l.type == 'Convolution'): if verbose: print(l.name + ': \t' + 'Changing num_output from ' + str(l.convolution_param.num_output) + ' to ' + str(name2num[l.name])) newl.convolution_param.num_output = name2num[l.name] if newl.convolution_param.group > 1: newl.convolution_param.group = name2num[l.name] else: if verbose: print('Layer ' + l.name + ' is not convolution, skipping') new_layers.append(newl) new_pnet = NetParameter() new_pnet.CopyFrom(netdef) del (new_pnet.layer[:]) new_pnet.layer.extend(new_layers) return new_pnet
def _create_new(name): new_ = LayerParameter() new_.CopyFrom(conv) new_.name = name new_.convolution_param.ClearField('kernel_size') new_.convolution_param.ClearField('pad') new_.convolution_param.ClearField('stride') return new_
def __init__(self, name): Node.__init__(self, name, allowAddInput=True, allowAddOutput=True, allowRemove=True) # self.paramList = self.getParamList() LayerFD = NetParameter.DESCRIPTOR.fields_by_name['layer'] self.param = LParameter.create(repeated=False, fieldDescriptor=LayerFD, expanded=True) for param in self.param.children(): param.setToDefault() t = ptree.ParameterTree() t.addParameters(self.param, depth=1, showTop=False) self.proto = LayerProto() self.specificParam = None self.baseParam = None self.sigRenamed.connect(self.nameChanged) self.sigTerminalRenamed.connect(self.updateBlobs) self.sigTerminalAdded.connect(self.updateBlobs) self.sigTerminalRemoved.connect(self.updateBlobs) t.setMinimumHeight(325) t.setVerticalScrollBarPolicy(pg.QtCore.Qt.ScrollBarAlwaysOff) self.ui = t self.bottoms = self.param.child('bottom') self.tops = self.param.child('top') # self.bottoms.sigChildAdded.connect(self.updateTerminals) # self.tops.sigChildAdded.connect(self.updateTerminals) if self.nodeName != "Layer": proto = LayerProto() proto.type = self.nodeName self.configFromLayerSpec(proto) # self.bottoms.addNew() # self.tops.addNew() # self.rename(str(self.nodeName).lower()) nodeName = str(self.nodeName).lower() with signalsBlocked(self.param): self.bottoms.addNew("bottom1") self.tops.addNew(nodeName.lower()) self.updateTerminals()
def _create_new(name): new_ = LayerParameter() new_.CopyFrom(fc) new_.name = name return new_
def _creat_new(name, layer_name): new_ = LayerParameter() new_.CopyFrom(layer_name) new_.name = name new_.convolution_param.ClearField('num_output') return new_
import sys pattern = sys.argv[1:] print(pattern) ref_net = caffe.Net('models/ssd_face/ssd_face_train.prototxt', 'models/ssd_face/best_bn_full.caffemodel', caffe.TRAIN) for mode in ['train','test','deploy']: with open('models/ssd_face/ssd_face_'+mode+'.prototxt', 'r') as f: net_par = NetParameter() txtf.Merge(f.read(), net_par) new_layers = [] for l in net_par.layer: newl = LayerParameter() newl.CopyFrom(l) if l.name in {'mbox_loc','mbox_conf','mbox_priorbox'}: newbot = [e for e in l.bottom if (('14' not in e) and ('15' not in e) and ('16' not in e) and ('17' not in e))] del(newl.bottom[:]) newl.bottom.extend(newbot) new_layers.append(newl) elif (('14' not in l.name) and ('15' not in l.name) and ('16' not in l.name) and ('17' not in l.name)): new_layers.append(newl) newnet_par = NetParameter() newnet_par.CopyFrom(net_par) del(newnet_par.layer[:])
def _create_new(name): print("--> {0}".format(name)) new_ = LayerParameter() new_.CopyFrom(conv) new_.name = name return new_