Understanding and modifying Faster RCNN


I am using MxNet 1.51 and GluonCv 0.4.
Faster RCNN model from GluonCV model zoo returns by default the arrays ids, scores, bboxes. But instead of getting only the id and the score of the best scoring class, I want to get the the whole array with the scores for all classes.

By inspecting the source code and in an ideal scenario, I would create a class that inherits from the FasterRCNN class and implement a method that is equal to hybrid_forward, but with a modified nms algorithm that would propagate the respective rows from F.softmax(cls_pred, axis=-1).

Since I do not have enough time, I am trying to add this function directly on the source code.
But I have a problem, the hybrid_forward is defined as:

def hybrid_forward(self, F, x, gt_box=None):

There is this extra F parameter, that seems to be a module.

What I do not understand is that, being net an instance of FasterRCNN and x an input tensor, I can get the output as:
ids, scores, bboxes = net(x)
With no extra parameter.
Also, I have not found a modified __call__ function for the FasterRCNN class that would deal with the F.

Is this the right way to approach this problem?