PaddlePaddle / PaddleClas

A treasure chest for visual classification and recognition powered by PaddlePaddle
Apache License 2.0
5.4k stars 1.16k forks source link

优化器多个scope 作用域的问题 #2929

Open hsuanguo opened 1 year ago

hsuanguo commented 1 year ago

比如以下的例子(改自)

Optimizer:
  - SGD:
      scope: "backbone"
      lr:
        name: Constant
        learning_rate: 0.2
        last_epoch: -1
  - SGD:
      scope: "RecModel"
      lr:
        name: Cyclic
        epochs: *epochs
        step_each_epoch: *iter_per_epoch
        base_learning_rate: 0.001
        max_learning_rate: 0.1
        warmup_epoch: 0
        warmup_start_lr: 1
        step_size_up: 1095
        step_size_down: 1095
        by_epoch: False
        last_epoch: 0

RecModel 包含了backbone, neck 和head, 那么两个optimizer 会同时作用于"backbone"? 还是其中有优先级的概念? 感谢!

@HydrogenSulfate

HydrogenSulfate commented 1 year ago

scope

印象里这个MetaBIN的模型比较特殊,整体用的是一个优化器,而模型中的“MetaBIN”层是用的是另一个优化器,这可能需要运行MetaBIN这个模型调试 ppcls\optimizer\__init__.py 下的 build_optimizer 这个函数看看,看下model_list是否存在重合的部分,如果存在的话可能需要自己写一个小的脚本看一下一个参数被多个优化器接受的情况下,优化是什么情况

hsuanguo commented 1 year ago

OK, 看代码的话貌似是没有优先级或者自动排除的机制, 那么就确实是两个优化器有作用于相同的参数的情况