MomentumTransform#

class MomentumTransform(keys=('momentum',))[source]#

Bases: object

Log10-compress strictly-positive momentum values.

For each key in keys that is present, replaces positive entries with log10(clip(x, 1e-6, None)) while leaving non-positive entries unchanged (so sentinel/zero values pass through). Registered as MomentumTransform — use this string as the type in a transform=[...] config list.

Parameters:

keys (tuple) – Keys to transform. Defaults to ("momentum",).

Example

>>> import numpy as np
>>> data = {"momentum": np.array([[0.0], [1.0], [100.0]], dtype="f4")}
>>> MomentumTransform()(data)["momentum"].round(3)
array([[0.],
       [0.],
       [2.]], dtype=float32)  # positive -> log10; 0 sentinel passes through