docs: def convert_ilsvrc2012(directory, output_directory,
                         output_filename='ilsvrc2012.hdf5',
                         shuffle_seed=config.default_seed):
      """Converter for data from the ILSVRC 2012 competition.
  
      Source files for this dataset can be obtained by registering at
      [ILSVRC2012WEB].
  
      Parameters
      ----------
      input_directory : str
          Path from which to read raw data files.
      output_directory : str
          Path to which to save the HDF5 file.
      output_filename : str, optional
          The output filename for the HDF5 file. Default: 'ilsvrc2012.hdf5'.
      shuffle_seed : int or sequence, optional
          Seed for a random number generator used to shuffle the order
          of the training set on disk, so that sequential reads will not
          be ordered by class.
  
      .. [ILSVRC2012WEB] http://image-net.org/challenges/LSVRC/2012/index
  
      """
      devkit_path = os.path.join(directory, DEVKIT_ARCHIVE)
      train, valid, test = [os.path.join(directory, fn) for fn in IMAGE_TARS]
      n_train, valid_groundtruth, n_test, wnid_map = prepare_metadata(
          devkit_path)
      n_valid = len(valid_groundtruth)
      output_path = os.path.join(output_directory, output_filename)
  
      with h5py.File(output_path, 'w') as f, create_temp_tar() as patch:
          log.info('Creating HDF5 datasets...')
          prepare_hdf5_file(f, n_train, n_valid, n_test)
          log.info('Processing training set...')
          process_train_set(f, train, patch, n_train, wnid_map, shuffle_seed)
          log.info('Processing validation set...')
          process_other_set(f, 'valid', valid, patch, valid_groundtruth, n_train)
          log.info('Processing test set...')
          process_other_set(f, 'test', test, patch, (None,) * n_test,
                            n_train + n_valid)
          log.info('Done.')
  
      return (output_path,)