def __init__(self, graph_part, crosslayer_dis): ''' :param nn: NetworkUnit ''' self.graph_part = graph_part self.crosslayer_dis = crosslayer_dis # 设置结构大小 self.node_number = len(self.graph_part) # 基于节点设置其可能的跨层连接 self.crosslayer = connect(self.graph_part, self.crosslayer_dis) # self.crosslayer = self.get_crosslayer() # 读取配置表得到操作的对应映射 self.setting, self.pros, self.parameters_subscript_node, = load_conf() # del self.setting['dense'] self.dic_index = self._init_dict() self.p = [] # 设置优化Dimension # 设置优化的参数 self.__region, self.__type = self.opt_parameters() self.dim = Dimension() self.dim.set_dimension_size(len(self.__region)) self.dim.set_regions(self.__region, self.__type) self.parameters_subscript = [] #
def __init__(self, graph_part, block_id): """ Generate adjacency of network topology. Sampling network operation based on sampled value(table). The sampling value is updated by the optimization module based on the output given by the evaluation module. Attributes: graph_part: a Network Topology(Adjacency table). block_id: The stage of neural network search. Other important operation information and parameters of optimization module are given by folder 'parameters'. """ self._p_table = [] # initializing the table value in Sampler. self._graph_part = graph_part self._node_number = len(self._graph_part) self._pattern = NAS_CONFIG['nas_main'][ 'pattern'] # Parameter setting based on search method self._crosslayer_dis = NAS_CONFIG['spl'][ 'skip_max_dist'] + 1 # dis control self._cross_node_number = NAS_CONFIG['spl']['skip_max_num'] self._graph_part_invisible_node = self.graph_part_add_invisible_node() self._crosslayer = self._get_crosslayer() # Read parameter table to get operation dictionary in stage(block_id) self._setting = dict() self._setting['conv'] = copy.deepcopy(NAS_CONFIG['spl']['conv_space']) self._setting['pooling'] = copy.deepcopy( NAS_CONFIG['spl']['pool_space']) if self._pattern == "Block": self._setting['conv']['filter_size'] = \ self._setting['conv']['filter_size'][block_id] self._dic_index = self._init_dict() # check # Set parameters of optimization module based on the above results self.__region, self.__type = self._opt_parameters() self.__dim = Dimension() self.__dim.set_dimension_size(len(self.__region)) # 10% self.__dim.set_regions(self.__region, self.__type) self.__parameters_subscript = [] # self.opt = Optimizer(self.__dim, self.__parameters_subscript) opt_para = copy.deepcopy(NAS_CONFIG["opt"]) __sample_size = opt_para[ "sample_size"] # the instance number of sampling in an iteration __budget = opt_para["budget"] # budget in online style __positive_num = opt_para["positive_num"] # the set size of PosPop __rand_probability = opt_para[ "rand_probability"] # the probability of sample in model __uncertain_bit = opt_para[ "uncertain_bit"] # the dimension size that is sampled randomly self.opt.set_parameters(ss=__sample_size, bud=__budget, pn=__positive_num, rp=__rand_probability, ub=__uncertain_bit) self.opt.clear() # clear optimization model
def __init__(self, nn): # 设置结构大小 self.node_number = len(nn.graph_part) # 读取配置表得到操作的概率映射 self.setting, self.pros, self.parameters_subscript, = load_conf() self.dic_index = self._init_dict() # # print(self.dic_index) # print(len(self.pros)) self.p = [] # 设置优化Dimension self.dim = Dimension() self.dim.set_dimension_size(len(self.pros)) # 设置优化的参数 self.dim.set_regions(self.pros, [0 for _ in range(len(self.pros))])
def __init__(self, nn): ''' :param nn: NetworkUnit ''' # 设置结构大小 self.node_number = len(nn.graph_part) # 读取配置表得到操作的对应映射 self.setting, self.pros, self.parameters_subscript_node, = load_conf() self.dic_index = self._init_dict() # print(len(self.pros)) self.p = [] # 设置优化Dimension # 设置优化的参数 self.__region, self.__type = self.opt_parameters() self.dim = Dimension() self.dim.set_dimension_size(len(self.__region)) self.dim.set_regions(self.__region, self.__type) self.parameters_subscript = [] #