class_docstr: Trains an autoencoder (AE) to represent categorical information with over 100 categories. This is used to ensure that feature vectors for categorical data with many categories are not excessively large.
  
  The AE defaults to a vector sized 100 but can be adjusted to user preference. It is highly advised NOT to use this encoder to feature engineer your target, as reconstruction accuracy will determine your AE's ability to decode properly.
docstr: Creates the data loaders for the CatAE model inputs. Expected inputs are generally of form `pd.Series`
  
  Currently does not use 'dev'; concatenates both inputs together.
  
  Input to the `DataLoader` must be an Iterable[str] (ideally List[str])
docstr_tok: ["Creates","the","data","loaders","for","the","CatAE","model","inputs",".","Expected","inputs","are","generally","of","form","`","pd.Series","`","Currently","does","not","use","'dev","'",";","concatenates","both","inputs","together",".","Input","to","the","`","DataLoader","`","must","be","an","Iterable","[","str","]","(","ideally","List","[","str","]",")"]
code: def _prepare_AE_input(
      self, train_priming_data: pd.Series, dev_priming_data: pd.Series
  ) -> Tuple[DataLoader, DataLoader]:
      """
      Creates the data loaders for the CatAE model inputs. Expected inputs are generally of form `pd.Series`
  
      Currently does not use 'dev'; concatenates both inputs together.
  
      Input to the `DataLoader` must be an Iterable[str] (ideally List[str])
  
      """  # noqa
      if len(dev_priming_data) > 0:
          priming_data = (
              pd.concat([train_priming_data, dev_priming_data])
              .astype(str)
              .tolist()
          )
      else:
          priming_data = [str(x) for x in train_priming_data]
  
      random.seed(len(priming_data))
  
      # Prepare a one-hot encoder for CatAE inputs
      self.input_encoder.prepare(priming_data)
      self.batch_size = max(
          min(self.batch_size, int(len(priming_data) / 50)), 1
      )
  
      train_loader = DataLoader(
          list(zip(priming_data, priming_data)),
          batch_size=self.batch_size,
          shuffle=True,
      )
  
      # TODO; make `Gym` compatible with a dev set
      dev_loader = None
  
      return train_loader, dev_loader
  
imports: import random
  import numpy
  import torch
  from torch.utils.data import DataLoader
  from lightwood.mixer.helpers.ranger import Ranger
  from lightwood.encoder.categorical.simple_label import SimpleLabelEncoder
  from lightwood.encoder.categorical.onehot import OneHotEncoder
  from lightwood.encoder.categorical.gym import Gym
  from lightwood.encoder.base import BaseEncoder
  from lightwood.helpers.log import log
  from lightwood.mixer.helpers.default_net import DefaultNet
  import pandas
  from typing import Iterable, Tuple, List
label_desc: Use image node_id 5 for calling the CategoricalAutoEncoder obj's underlying member method code with example usage: obj._prepare_AE_input(train_priming_data, dev_priming_data) and returns: train_loader,  dev_loader