def METHOD_NAME(self, strategy=None):
    scheduler = paddle.optimizer.lr.PiecewiseDecay(
        boundaries=[10, 20, 50],
        values=[0.001, 0.0001, 0.0005, 0.00001],
        verbose=True)
    optimizer = paddle.optimizer.Adagrad(learning_rate=scheduler)
    if strategy != None:
        import paddle.distributed.fleet as fleet
        optimizer = fleet.distributed_optimizer(optimizer, strategy)
    optimizer.minimize(self._cost)