code: def update_learning_rate(lr, trainer, epoch, ratio, steps):
      """Set the learning rate to the initial value decayed by ratio every N epochs."""
      new_lr = lr * (ratio ** int(np.sum(np.array(steps) < epoch)))
      trainer.set_learning_rate(new_lr)
      return trainer
  
file_path: mxnet/example/gluon/image_classification.py
imports: from __future__ import division
  import argparse, time, os
  import logging
  import mxnet
  from mxnet import gluon
  from mxnet import profiler
  from mxnet.gluon import nn
  from mxnet.gluon.model_zoo import vision
  from mxnet import autograd
  from mxnet.test_utils import get_mnist_iterator
  from mxnet.gluon.metric import Accuracy, TopKAccuracy, CompositeEvalMetric
  import numpy
  from data import get_cifar10_iterator, get_imagenet_iterator, get_caltech101_iterator, dummy_iterator
label_desc: Use image node_id 4 for calling a global function with example usage: update_learning_rate(lr, trainer, epoch, ratio, steps) and returns: trainer