GeneticNas代码理解

GeneticNas是一个基于遗传算法的神经网络结构搜索方法。它包含神经网络、Cell、DAG和block等组件。Individual存储DAG配置,MultipleBlockIndividual代表整个神经网络。搜索空间通过ConvNodeModule存储可能的配置,并通过set_individual设置网络结构。遗传算法在搜索空间中进行选择、交叉和变异,以优化网络性能。每个epoch训练一个网络并更新搜索空间,以找到最佳结构。这种方法与DEvol相比,训练效率更高,因为它只训练一个网络并逐步优化整个搜索空间的参数。
摘要由CSDN通过智能技术生成

总体结构:神经网络-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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值