code: def main():
      env = gym.make(args.env)
      env.seed(ENV_SEED)
      env = ActionMappingWrapper(env)
  
      obs_dim = env.observation_space.shape[0]
      act_dim = env.action_space.shape[0]
      max_action = float(env.action_space.high[0])
  
      model = MujocoModel(act_dim, max_action)
      algorithm = parl.algorithms.TD3(
          model,
          max_action=max_action,
          gamma=GAMMA,
          tau=TAU,
          actor_lr=ACTOR_LR,
          critic_lr=CRITIC_LR,
      )
      agent = MujocoAgent(algorithm, obs_dim, act_dim)
  
      rpm = ReplayMemory(MEMORY_SIZE, obs_dim, act_dim)
  
      test_flag = 0
      total_steps = 0
      while total_steps < args.train_total_steps:
          train_reward, steps = run_train_episode(env, agent, rpm)
          total_steps += steps
          logger.info(
              "Steps: {} Reward: {}".format(total_steps, train_reward)
          )
          summary.add_scalar(
              "train/episode_reward", train_reward, total_steps
          )
  
          if total_steps // args.test_every_steps >= test_flag:
              while total_steps // args.test_every_steps >= test_flag:
                  test_flag += 1
              evaluate_reward = run_evaluate_episode(env, agent)
              logger.info(
                  "Steps {}, Evaluate reward: {}".format(
                      total_steps, evaluate_reward
                  )
              )
              summary.add_scalar(
                  "eval/episode_reward", evaluate_reward, total_steps
              )
  
file_path: PARL/benchmark/fluid/TD3/train.py
imports: from parl.utils import check_version_for_fluid
  import argparse
  import gym
  import numpy
  import time
  import parl
  from mujoco_agent import MujocoAgent
  from mujoco_model import MujocoModel
  from parl.utils import logger, summary, ReplayMemory
  from parl.env.continuous_wrappers import ActionMappingWrapper
label_desc: Use image node_id 3 for calling a global function with example usage: main() without return types