def METHOD_NAME(self, strategy=None):
    # optimizer = paddle.optimizer.Adam(learning_rate=self.learning_rate)
    # if strategy != None:
    #     import paddle.distributed.fleet as fleet
    #     optimizer = fleet.distributed_optimizer(optimizer, strategy)
    # optimizer.minimize(self._cost)
    boundaries = [410000]
    values = [self.learning_rate_base_lr, 0.2]
    optimizer = paddle.optimizer.SGD(
        learning_rate=paddle.optimizer.lr.PiecewiseDecay(
            boundaries=boundaries, values=values))
    if strategy != None:
        import paddle.distributed.fleet as fleet
        optimizer = fleet.distributed_optimizer(optimizer, strategy)
    optimizer.minimize(self._cost)
    return optimizer