class_docstr: An ActorPolicy that also returns policy_info needed for PPO training.
  
  This policy requires two networks: the usual `actor_network` and the
  additional `value_network`. The value network can be executed with the
  `apply_value_network()` method.
  
  When the networks have state (RNNs, LSTMs) you must be careful to pass the
  state for the actor network to `action()` and the state of the value network
  to `apply_value_network()`. Use `get_initial_value_state()` to access
  the state of the value network.
docstr: Returns the initial state of the value network.
  
  Args:
    batch_size: A constant or Tensor holding the batch size. Can be None, in
      which case the state will not have a batch dimension added.
  
  Returns:
    A nest of zero tensors matching the spec of the value network state.
docstr_tok: ["Returns","the","initial","state","of","the","value","network",".","Args",":","batch_size",":","A","constant","or","Tensor","holding","the","batch","size",".","Can","be","None",",","in","which","case","the","state","will","not","have","a","batch","dimension","added",".","Returns",":","A","nest","of","zero","tensors","matching","the","spec","of","the","value","network","state","."]
code: def get_initial_value_state(
      self, batch_size: types.Int
  ) -> types.NestedTensor:
      """Returns the initial state of the value network.
  
      Args:
        batch_size: A constant or Tensor holding the batch size. Can be None, in
          which case the state will not have a batch dimension added.
  
      Returns:
        A nest of zero tensors matching the spec of the value network state.
      """
      return tensor_spec.zero_spec_nest(
          self._value_network.state_spec,
          outer_dims=None if batch_size is None else [batch_size],
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from typing import Optional
  import gin
  import tensorflow
  from tf_agents.agents.ppo import ppo_utils
  from tf_agents.distributions import utils
  from tf_agents.networks import network
  from tf_agents.policies import actor_policy
  from tf_agents.specs import tensor_spec
  from tf_agents.trajectories import policy_step
  from tf_agents.trajectories import time_step
  from tf_agents.typing import types
  from tf_agents.utils import common
  from tf_agents.utils import nest_utils
  from tf_agents.utils import tensor_normalizer
label_desc: Use image node_id 2 for calling the PPOPolicy obj's underlying member method code with example usage: obj.get_initial_value_state(batch_size) and returns: tensor_spec