code: def main():
      # OpenAI-Gym environment initialization
      environment = Environment.create(
          environment="benchmarks/configs/cartpole.json"
      )
  
      # PPO agent initialization
      agent = Agent.create(
          agent="benchmarks/configs/ppo.json",
          environment=environment,
          # Option 1: Saver - save agent periodically every 10 updates
          # and keep the 5 most recent checkpoints
          saver=dict(
              directory="model-checkpoint",
              frequency=10,
              max_checkpoints=5,
          ),
      )
  
      # Runner initialization
      runner = Runner(agent=agent, environment=environment)
  
      # Training
      runner.run(num_episodes=100)
      runner.close()
  
      # Option 2: Explicit save
      # (format: 'numpy' or 'hdf5' store only weights, 'checkpoint' stores full TensorFlow model,
      # agent argument saver, specified above, uses 'checkpoint')
      agent.save(
          directory="model-numpy", format="numpy", append="episodes"
      )
  
      # Close agent separately, since created separately
      agent.close()
  
      # Load agent TensorFlow checkpoint
      agent = Agent.load(
          directory="model-checkpoint",
          format="checkpoint",
          environment=environment,
      )
      runner = Runner(agent=agent, environment=environment)
      runner.run(num_episodes=100, evaluation=True)
      runner.close()
      agent.close()
  
      # Load agent NumPy weights
      agent = Agent.load(
          directory="model-numpy",
          format="numpy",
          environment=environment,
      )
      runner = Runner(agent=agent, environment=environment)
      runner.run(num_episodes=100, evaluation=True)
      runner.close()
      agent.close()
  
      # Close environment separately, since created separately
      environment.close()
  
label_desc: Use image node_id 1 for calling a global function with example usage: main() without return types