总体结构:神经网络-Cell(每个NN含有3个Cell)-DAG(每个Cell含有一个DAG)-block(每个DAG含有5个block)
Individual:储存一个DAG中的5个np.asarray([input1index,input2index,op1index,op2index])组成的list和5个(input1,input2,input1index,input2index,op1,op2)tuple组成的list;主要作用存储一个神经网络的一个cell中的DAG的配置
MultipleBlockIndividual:3个Individual组成,代表一个具体的神经网络
ConvNodeModule:存储一个CnnNodeConfig,以及其len(input_list)*5个op(一个CnnNodeConfig存储着一个block中的input_list和CNN_OP=[‘Dw3x3’,‘Identity’,‘Dw5x5’,‘Avg3x3’,‘Max3x3’],而ConvNodeModule把这些input_list中的每个元素的所有可能的op都添加到nn.Module,以便之后使用requires_grad来激活某些input和op组合来实现一个特定的神经网络)
搜索空间单个神经网络的实现:set_individual
(NN)Net.set_individual:
输入为MultipleBlockIndividual
(-RepeatBlock.set_individuall(输入为MultipleBlockIndividual))
-(Cell)CnnSearchModule.set_individuall:
输入为MultipleBlockIndividual
-(DAG)SubGraphModule.set_individual:
输入为MultipleBlockIndiv