class_docstr: PPO class
class_docstr_tok: ["PPO","class"]
docstr: Choose action
  :param state: state
  :param greedy: choose action greedy or not
  :return: clipped action
docstr_tok: ["Choose","action",":","param","state",":","state",":","param","greedy",":","choose","action","greedy","or","not",":","return",":","clipped","action"]
code: def get_action(self, state, greedy=False):
      """
      Choose action
      :param state: state
      :param greedy: choose action greedy or not
      :return: clipped action
      """
      state = state[np.newaxis, :].astype(np.float32)
      mean, std = self.actor(state), tf.exp(self.actor.logstd)
      if greedy:
          action = mean[0]
      else:
          pi = tfp.distributions.Normal(mean, std)
          action = tf.squeeze(pi.sample(1), axis=0)[
              0
          ]  # choosing action
      return np.clip(action, -self.action_bound, self.action_bound)
  
imports: import argparse
  import os
  import queue
  import threading
  import time
  import gym
  import matplotlib.pyplot
  import numpy
  import tensorflow
  import tensorflow_probability
  import tensorlayer
label_desc: Use image node_id 5 for calling the PPO obj's underlying member method code with example usage: obj.get_action(state, greedy) and returns: np