code: def __init__(self, algorithm, obs_dim, act_dim):
      self.obs_dim = obs_dim
      self.act_dim = act_dim
      super(OpenSimAgent, self).__init__(algorithm)
  
      # Use ParallelExecutor to make program running faster
      exec_strategy = fluid.ExecutionStrategy()
      exec_strategy.use_experimental_executor = True
      exec_strategy.num_threads = 4
      build_strategy = fluid.BuildStrategy()
      build_strategy.remove_unnecessary_lock = True
  
      with fluid.scope_guard(fluid.global_scope().new_scope()):
          self.learn_pe = fluid.ParallelExecutor(
              use_cuda=machine_info.is_gpu_available(),
              main_program=self.learn_program,
              exec_strategy=exec_strategy,
              build_strategy=build_strategy,
          )
  
      with fluid.scope_guard(fluid.global_scope().new_scope()):
          self.pred_pe = fluid.ParallelExecutor(
              use_cuda=machine_info.is_gpu_available(),
              main_program=self.pred_program,
              exec_strategy=exec_strategy,
              build_strategy=build_strategy,
          )
  
      # Attention: In the beginning, sync target model totally.
      self.alg.sync_target(
          decay=0, share_vars_parallel_executor=self.learn_pe
      )
  
file_path: PARL/examples/NeurIPS2019-Learn-to-Move-Challenge/opensim_agent.py
imports: import parl
  import numpy
  from parl import layers
  from parl.utils import machine_info
  from paddle import fluid
label_desc: Use image node_id 1 to create a new OpenSimAgent object from inherited base classes: parl with example: obj = OpenSimAgent(algorithm, obs_dim, act_dim)