meijieru / AtomNAS

[ICLR 2020]: 'AtomNAS: Fine-Grained End-to-End Neural Architecture Search'
Other
224 stars 21 forks source link

How to search smaller flops model? #8

Closed betterhalfwzm closed 4 years ago

betterhalfwzm commented 4 years ago

Thx!!

meijieru commented 4 years ago
  1. Use larger lambda
  2. Start from thinner supernet
betterhalfwzm commented 4 years ago
  1. Use larger lambda
  2. Start from thinner supernet

Thank you for your answer.And where can i set the lambda or thinner supernet in the code or yml? How many hours with 8 cards to search and retrain? Looking forward to your reply. Thank you very much. @meijieru

meijieru commented 4 years ago
  1. Check a YAML config of the training example.
  2. We didn't run the code for 8 cards and could not guarantee the performance.
betterhalfwzm commented 4 years ago
  1. Check a YAML config of the training example.
  2. We didn't run the code for 8 cards and could not guarantee the performance.

Thank you for your answer. Start from thinner supernet that means to change the channels and numbers of block in the inverted_residual_setting? If i only use larger lambda( like rho: 2.4e-4), can it work? @meijieru Thank you very much. 'inverted_residual_setting': [[1, 16, 1, 1, [3]], [6, 24, 4, 2, [3, 5, 7]], [6, 40, 4, 2, [3, 5, 7]], [6, 80, 4, 2, [3, 5, 7]], [6, 96, 4, 1, [3, 5, 7]], [6, 192, 4, 2, [3, 5, 7]], [6, 320, 1, 1, [3, 5, 7]]] prune_params: { method: network_slimming, bn_prune_filter: expansion_only_skip_expand1, rho: 1.8e-4, epoch_free: 0, epoch_warmup: 25, scheduler: linear, stepwise: True, logging_verbose: False }

meijieru commented 4 years ago
  1. To start from a thinner supernet, you could try the followings:
    • modify the output channels of the blocks
    • use fewer blocks
    • start from smaller expand ratio
  2. If the model you want is at the same level computation cost, I recommend a larger lambda. But if you want a much lighter model, I suggest to use a thinner supernet and then adjust the lambda for better performance.
betterhalfwzm commented 4 years ago
  1. To start from a thinner supernet, you could try the followings:

    • modify the output channels of the blocks
    • use fewer blocks
    • start from smaller expand ratio
  2. If the model you want is at the same level computation cost, I recommend a larger lambda. But if you want a much lighter model, I suggest to use a thinner supernet and then adjust the lambda for better performance.

Thank you for your advice. I'll try it out