class_docstr: A fake PPO agent that tracks input trajectories into agent.train.
class_docstr_tok: ["A","fake","PPO","agent","that","tracks","input","trajectories","into","agent.train","."]
code: def __init__(self, strategy=None):
      self._strategy = strategy
  
      actor_net = actor_distribution_network.ActorDistributionNetwork(
          tensor_spec.TensorSpec(shape=[], dtype=tf.float32),
          tensor_spec.BoundedTensorSpec([1], tf.float32, -1, 1),
          fc_layer_params=(1,),
          activation_fn=tf.nn.tanh,
      )
      value_net = value_network.ValueNetwork(
          tensor_spec.TensorSpec(shape=[], dtype=tf.float32),
          fc_layer_params=(1,),
      )
  
      super(FakePPOAgent, self).__init__(
          time_step_spec=ts.time_step_spec(
              tensor_spec.TensorSpec(shape=[], dtype=tf.float32)
          ),
          action_spec=tensor_spec.BoundedTensorSpec(
              [1], tf.float32, -1, 1
          ),
          actor_net=actor_net,
          value_net=value_net,
          # Ensures value_prediction, return and normalized_advantage are included
          # as part of the training_data_spec.
          compute_value_and_advantage_in_train=False,
          update_normalizers_in_train=False,
      )
      self.train_called_times = tf.Variable(0, dtype=tf.int32)
      self.experiences = []
  
file_path: agents/tf_agents/train/ppo_learner_test_utils.py
imports: import numpy
  import tensorflow
  from tf_agents.agents import tf_agent
  from tf_agents.agents.ppo import ppo_agent
  from tf_agents.networks import actor_distribution_network
  from tf_agents.networks import value_network
  from tf_agents.specs import tensor_spec
  from tf_agents.trajectories import time_step
  from tf_agents.trajectories import trajectory
label_desc: Use image node_id 1 to create a new FakePPOAgent object from inherited base classes: ppo_agent with example: obj = FakePPOAgent(strategy)