code: def build_program(self):
      self.pred_program = fluid.Program()
      self.sample_program = fluid.Program()
      self.learn_program = fluid.Program()
  
      with fluid.program_guard(self.pred_program):
          obs = layers.data(
              name="obs", shape=[self.obs_dim], dtype="float32"
          )
          self.pred_act = self.alg.predict(obs)
  
      with fluid.program_guard(self.sample_program):
          obs = layers.data(
              name="obs", shape=[self.obs_dim], dtype="float32"
          )
          self.sample_act, _ = self.alg.sample(obs)
  
      with fluid.program_guard(self.learn_program):
          obs = layers.data(
              name="obs", shape=[self.obs_dim], dtype="float32"
          )
          act = layers.data(
              name="act", shape=[self.act_dim], dtype="float32"
          )
          reward = layers.data(name="reward", shape=[], dtype="float32")
          next_obs = layers.data(
              name="next_obs", shape=[self.obs_dim], dtype="float32"
          )
          terminal = layers.data(
              name="terminal", shape=[], dtype="bool"
          )
          self.critic_cost, self.actor_cost = self.alg.learn(
              obs, act, reward, next_obs, terminal
          )
  
file_path: PARL/benchmark/fluid/SAC/mujoco_agent.py
imports: import numpy
  import parl
  from parl import layers
  from paddle import fluid
label_desc: Use image node_id 2 for calling the MujocoAgent obj's underlying member method code with example usage: obj.build_program() without return types