code: def t2t_train(model_name, dataset_name,
                data_dir=None, output_dir=None, config_file=None, config=None):
    
    if model_name not in _MODEL_REGISTRY:
      raise ValueError("Model %s not in registry. Available models:\n * %s." %
                       (model_name, "\n * ".join(_MODEL_REGISTRY.keys())))
    model_class = _MODEL_REGISTRY[model_name]()
    gin.bind_parameter("train_fn.model_class", model_class)
    gin.bind_parameter("train_fn.dataset", dataset_name)
    gin.parse_config_files_and_bindings(config_file, config)
    # TODO(lukaszkaiser): save gin config in output_dir if provided?
    train_fn(data_dir, output_dir=output_dir)
docs: Main function to train the given model on the given dataset.
  
    Args:
      model_name: The name of the model to train.
      dataset_name: The name of the dataset to train on.
      data_dir: Directory where the data is located.
      output_dir: Directory where to put the logs and checkpoints.
      config_file: the gin configuration file to use.
      config: string (in gin format) to override gin parameters.