code: def train(env_id, num_timesteps, seed, policy, lr_schedule, num_cpu):
      """
      train an ACER model on atari
  
      :param env_id: (str) Environment ID
      :param num_timesteps: (int) The total number of samples
      :param seed: (int) The initial seed for training
      :param policy: (A2CPolicy) The policy model to use (MLP, CNN, LSTM, ...)
      :param lr_schedule: (str) The type of scheduler for the learning rate update ('linear', 'constant',
                                   'double_linear_con', 'middle_drop' or 'double_middle_drop')
      :param num_cpu: (int) The number of cpu to train on
      """
      env = VecFrameStack(make_atari_env(env_id, num_cpu, seed), 4)
      if policy == "cnn":
          policy_fn = CnnPolicy
      elif policy == "lstm":
          policy_fn = CnnLstmPolicy
      else:
          warnings.warn("Policy {} not implemented".format(policy))
          return
  
      model = ACER(
          policy_fn,
          env,
          lr_schedule=lr_schedule,
          buffer_size=5000,
          seed=seed,
      )
      model.learn(total_timesteps=int(num_timesteps * 1.1))
      env.close()
      # Free memory
      del model
  
imports: import warnings
  from stable_baselines import logger, ACER
  from stable_baselines.common.policies import CnnPolicy, CnnLstmPolicy
  from stable_baselines.common.cmd_util import make_atari_env, atari_arg_parser
  from stable_baselines.common.vec_env import VecFrameStack
label_desc: Use image node_id 1 for calling a global function with example usage: train(env_id, num_timesteps, seed, policy, lr_schedule, num_cpu) without return types