コード例 #1
0
    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 = []  #
コード例 #2
0
 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
コード例 #3
0
    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))])
コード例 #4
0
    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 = []  #