You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

search_structure_supernet.py 1.8 kB

2 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # Copyright (c) Microsoft Corporation.
  2. # Licensed under the MIT License.
  3. # Written by Hao Du and Houwen Peng
  4. # email: haodu8-c@my.cityu.edu.hk and houwen.peng@microsoft.com
  5. def search_for_layer(flops_op_dict, arch_def, flops_minimum, flops_maximum):
  6. sta_num = [1, 1, 1, 1, 1]
  7. order = [2, 3, 4, 1, 0, 2, 3, 4, 1, 0]
  8. limits = [3, 3, 3, 2, 2, 4, 4, 4, 4, 4]
  9. size_factor = 224 // 32
  10. base_min_flops = sum([flops_op_dict[i][0][0] for i in range(5)])
  11. base_max_flops = sum([flops_op_dict[i][5][0] for i in range(5)])
  12. if base_min_flops > flops_maximum:
  13. while base_min_flops > flops_maximum and size_factor >= 2:
  14. size_factor = size_factor - 1
  15. flops_minimum = flops_minimum * (7. / size_factor)
  16. flops_maximum = flops_maximum * (7. / size_factor)
  17. if size_factor < 2:
  18. return None, None, None
  19. elif base_max_flops < flops_minimum:
  20. cur_ptr = 0
  21. while base_max_flops < flops_minimum and cur_ptr <= 9:
  22. if sta_num[order[cur_ptr]] >= limits[cur_ptr]:
  23. cur_ptr += 1
  24. continue
  25. base_max_flops = base_max_flops + flops_op_dict[order[cur_ptr]][5][1]
  26. sta_num[order[cur_ptr]] += 1
  27. if cur_ptr > 7 and base_max_flops < flops_minimum:
  28. return None, None, None
  29. cur_ptr = 0
  30. while cur_ptr <= 9:
  31. if sta_num[order[cur_ptr]] >= limits[cur_ptr]:
  32. cur_ptr += 1
  33. continue
  34. base_max_flops = base_max_flops + flops_op_dict[order[cur_ptr]][5][1]
  35. if base_max_flops <= flops_maximum:
  36. sta_num[order[cur_ptr]] += 1
  37. else:
  38. break
  39. arch_def = [item[:i] for i, item in zip([1] + sta_num + [1], arch_def)]
  40. # print(arch_def)
  41. return sta_num, arch_def, size_factor * 32

一站式算法开发平台、高性能分布式深度学习框架、先进算法模型库、视觉模型炼知平台、数据可视化分析平台等一系列平台及工具,在模型高效分布式训练、数据处理和可视分析、模型炼知和轻量化等技术上形成独特优势,目前已在产学研等各领域近千家单位及个人提供AI应用赋能