def forward(self, x):
    if (self.num_shared_convs > 0):
        for conv in self.shared_convs:
            x = conv(x)
    if (self.num_shared_fcs > 0):
        if self.with_avg_pool:
            x = self.avg_pool(x)
        x = x.flatten(1)
        for fc in self.shared_fcs:
            x = self.relu(fc(x))
    x_cls = x
    x_reg = x
    if self.with_dis:
        x_dis = x
        for conv in self.dis_convs:
            x_dis = conv(x_dis)
        if (x_dis.dim() > 2):
            if self.with_avg_pool:
                x_dis = self.avg_pool(x_dis)
            x_dis = x_dis.flatten(1)
        for fc in self.dis_fcs:
            x_dis = self.relu(fc(x_dis))
    for conv in self.cls_convs:
        x_cls = conv(x_cls)
    if (x_cls.dim() > 2):
        if self.with_avg_pool:
            x_cls = self.avg_pool(x_cls)
        x_cls = x_cls.flatten(1)
    for fc in self.cls_fcs:
        x_cls = self.relu(fc(x_cls))
    for conv in self.reg_convs:
        x_reg = conv(x_reg)
    if (x_reg.dim() > 2):
        if self.with_avg_pool:
            x_reg = self.avg_pool(x_reg)
        x_reg = x_reg.flatten(1)
    for fc in self.reg_fcs:
        x_reg = self.relu(fc(x_reg))
    cls_score = (self.fc_cls(x_cls) if self.with_cls else None)
    bbox_pred = (self.fc_reg(x_reg) if self.with_reg else None)
    dis_pred = (self.fc_dis(x_dis) if self.with_dis else None)
    return (cls_score, bbox_pred, dis_pred)
def forward(self, x):
    if (self.num_shared_convs > 0):
        for conv in self.shared_convs:
            x = conv(x)
    if (self.num_shared_fcs > 0):
        if self.with_avg_pool:
            x = self.avg_pool(x)
        x = x.flatten(1)
        for fc in self.shared_fcs:
            x = self.relu(fc(x))
    x_cls = x
    x_reg = x
    if self.with_dis:
        x_dis = x
        for conv in self.dis_convs:
            x_dis = conv(x_dis)
        if (x_dis.dim() > 2):
            if self.with_avg_pool:
                x_dis = self.avg_pool(x_dis)
            x_dis = x_dis.flatten(1)
        for fc in self.dis_fcs:
            x_dis = self.relu(fc(x_dis))
    for conv in self.cls_convs:
        x_cls = conv(x_cls)
    if (x_cls.dim() > 2):
        if self.with_avg_pool:
            x_cls = self.avg_pool(x_cls)
        x_cls = x_cls.flatten(1)
    for fc in self.cls_fcs:
        x_cls = self.relu(fc(x_cls))
    for conv in self.reg_convs:
        x_reg = conv(x_reg)
    if (x_reg.dim() > 2):
        if self.with_avg_pool:
            x_reg = self.avg_pool(x_reg)
        x_reg = x_reg.flatten(1)
    for fc in self.reg_fcs:
        x_reg = self.relu(fc(x_reg))
    cls_score = (self.fc_cls(x_cls) if self.with_cls else None)
    bbox_pred = (self.fc_reg(x_reg) if self.with_reg else None)
    dis_pred = (self.fc_dis(x_dis) if self.with_dis else None)
    return (cls_score, bbox_pred, dis_pred)