Masks were used somewhat ad-hoc here and there. Here we centralise masking in GraphActionCategorical(), specifically:
renamed masks in GraphActionCategorical to action_mask (to avoid confusion with done-masking, molecule validity masking, goal-conditioning masking, etc.)
made logits and masks private attributes of GraphActionCategorical
remove _mask() application from GraphTransformerFragEnvelopeQL and GraphTransformerGFN
removed masking from GraphSampler (masks applied in property setters of GraphActionCategorical._logits)
We also replaced the action-tuples Tuple[int, int, int] action type, row and column by a named-tuple ActionIndex to the code and typing more intuitive and readable.
Masks were used somewhat ad-hoc here and there. Here we centralise masking in GraphActionCategorical(), specifically:
We also replaced the action-tuples
Tuple[int, int, int]
action type, row and column by a named-tupleActionIndex
to the code and typing more intuitive and readable.