训练完成后,您可基于神经网络孪生来开展进化搜索,以 MAC 最小值和最大值范围来获取已达成 MAC 与准确度的最佳平衡的子网络。
pareto_global = ofa_pruner.run_evolutionary_search(ofa_model, calibration_fn, (train_loader,) eval_fn, (val_loader,), 'acc1', 'max', min_macs=230, max_macs=250)
ofa_pruner.save_subnet_config(pareto_global, 'pareto_global.txt')
进化搜索结果如下所示:
{
"230": {
"net_id": "net_evo_0_crossover_0",
"mode": "evaluate",
"acc1": 69.04999542236328,
"macs": 228.356192,
"params": 3.096728,
"subnet_setting": [...]
}
"240": {
"net_id": "net_evo_0_mutate_1",
"mode": "evaluate",
"acc1": 69.22000122070312,
"macs": 243.804128,
"params": 3.114,
"subnet_setting": [...]
}}