A .py utility file for neural network learing rate policies
Overall I rather like this. It's a nice way to think about &quot;configurable functions&quot;. Minor stuff:

Due to order of operations, the parens around self.lr_base * (self.lr_mult ** epoch) are not needed
It's worth splitting out a temporary variable for cfg['OPTIM']
Consider annotating your member variables and method signatures with PEP484 type hints
Decimals in 1.0 are not necessary due to float promotion
Spaces before colons - &quot;cos&quot; : - are not PEP8-standard
You've not shown unit tests. If you don't have them, write them.

If you're interested, a different (not necessarily better) way of thinking about these functions is that they can start as normal, non-class functions, where the first parameter(s) are the configuration needed; then call partial() to get a callable reference that you can then use as if it has only epoch as a parameter from the perspective of  LambdaLR.