<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_model(model_name, epoch_num, data_shapes, label_shapes, label_names, gpus=''):
 """Returns a module loaded with the provided model. Parameters model_name: str Prefix of the MXNet model name as stored on the local directory. epoch_num : int Epoch number of model we would like to load. input_shape: tuple The shape of the input data in the form of (batch_size, channels, height, width) files: list of strings List of URLs pertaining to files that need to be downloaded in order to use the model. data_shapes: list of tuples. List of tuples where each tuple is a pair of input variable name and its shape. label_shapes: list of (str, tuple) Typically is ``data_iter.provide_label``. label_names: list of str Name of the output labels in the MXNet symbolic graph. gpus: str Comma separated string of gpu ids on which inferences are executed. E.g. 3,5,6 would refer to GPUs 3, 5 and 6. If empty, we use CPU. Returns ------- MXNet module """

    sym, arg_params, aux_params = mx.model.load_checkpoint(model_name, epoch_num)

    mod = create_module(sym, data_shapes, label_shapes, label_names, gpus)

    mod.set_params(
        arg_params=arg_params,
        aux_params=aux_params,
        allow_missing=True
    )

    return mod