Maskformer improvements
Maskformer is being added in !221 (merged) . The current implementation runs but there are several possible improvements/changes
-
Fix ONNX exports for NodeGAP: The normal approach of simply concatenating a dummy track before pooling doesn't seem to work. The error suggests that something in the Decoder layers themselves are giving the issue, but everything works if we don't apply this pooling. -
Refactor decoder tasks into main tasks list: Currently, the decoder requires 2 network definitions for the mask prediction net and object classification net. It would be nicer to have all tasks listed in the same area, but this requires some thinking, as these task outputs are used in several places, and some (such as mask prediction) can utilise multiple loss functions. -
Refactoring of regression scaling: !221 (merged) Introduces RegressionTargetScaler, which allows for function-based scaling of regression targets. The other scaling methods can be treated as a sub-set of this, possibly allowing a cleanup of the code in RegressionTaskBase. The main challenge with this is if we can automatically treat the 'stds' in GaussianRegression properly with this. -
Figure out how best to export to onnx all regression values. At the moment, we can decorate jets, or tracks, but not sure how we could format this for generic objects. For vertexing, its feasible to decorate the truth particles, but this would require a re-work on the Athena end, not least due to the fact that at the moment, any scaler is decorated to the jet, and any vector decorated to tracks - we would need to also output information on what type of object a value should decorate. -
Move the MF config to be part of the main model, to remove need to re-instantiate !261 (merged)
Edited by Nikita Ivvan Pond