def forward(self, x):

    def _inner_forward(x):
        out = x
        if self.with_expand_conv:
            out = self.expand_conv(out)
        out = self.depthwise_conv(out)
        if self.with_se:
            out = self.se(out)
        out = self.linear_conv(out)
        if self.with_res_shortcut:
            return (x + out)
        else:
            return out
    if (self.with_cp and x.requires_grad):
        out = cp.checkpoint(_inner_forward, x)
    else:
        out = _inner_forward(x)
    return out
def forward(self, x):

    def _inner_forward(x):
        out = x
        if self.with_expand_conv:
            out = self.expand_conv(out)
        out = self.depthwise_conv(out)
        if self.with_se:
            out = self.se(out)
        out = self.linear_conv(out)
        if self.with_res_shortcut:
            return (x + out)
        else:
            return out
    if (self.with_cp and x.requires_grad):
        out = cp.checkpoint(_inner_forward, x)
    else:
        out = _inner_forward(x)
    return out