[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[IMP-dev] Attribute scaling



It came up in the context of rigid bodies that certain optimizers (namely CG) like to have all their parameters vary over a similar scale. As a result, it can be important to rescale non-xyz attributes. One way of doing this would be to add a method to Model: FloatPair get_range(FloatKey) which returns the current range of values for a particular FloatKey. Then CG could use that to rescale all its values internally.

If it is useful to be able to override the range, we could also add set_range which allows you to set the expected range (perhaps even allowed range) for a given attribute type.

Both of these would be relatively easy to implement on the Model side. The CG code is a bit hairy, so tweaking that could take more work (and is probably best done by adding another set of methods to access the values in the Optimizer base class).