code: def action_mapping(model_output_act, low_bound, high_bound):
      """将模型输出的动作从范围 [-1,1] 映射到 [low_bound, high_bound].
      参数:
          model_output_act: np.array, 值的范围为[-1, 1]
          low_bound: float, 环境动作空间的下界
          high_bound: float, 环境动作空间的上界
      返回:
          action: np.array, 值的范围为 [low_bound, high_bound]
      """
      assert np.all(
          ((model_output_act <= 1.0), (model_output_act >= -1.0))
      ), "the action should be in range [-1.0, 1.0]"
      assert high_bound > low_bound
      action = low_bound + (model_output_act - (-1.0)) * (
          (high_bound - low_bound) / 2.0
      )
      action = np.clip(action, low_bound, high_bound)
      return action
  
file_path: PARL/examples/tutorials/homework/lesson5/ddpg_quadrotor/train.py
imports: import gym
  import parl
  import paddle
  import os
  import numpy
  import parl
  from parl import layers
  from paddle import fluid
  from parl.utils import logger
  from parl.utils import ReplayMemory
  from rlschool import make_env
  from quadrotor_model import QuadrotorModel
  from quadrotor_agent import QuadrotorAgent
  from parl.algorithms import DDPG
label_desc: Use image node_id 1 for calling a global function with example usage: action_mapping(model_output_act, low_bound, high_bound) and returns: action