class_docstr: Non-tensorflow API for infering policy (and value function).
  
  Example:
    >>> ppo = PPOPolicyInferencer(...)
    >>> ppo.reset_frame_stack()
    >>> ob = env.reset()
    >>> while not done:
    >>>   logits, value = ppo.infer(ob)
    >>>   ob, _, done, _ = env.step(action)
class_docstr_tok: ["Non-tensorflow","API","for","infering","policy","(","and","value","function",")",".","Example",":",">",">",">","ppo","=","PPOPolicyInferencer","(","...",")",">",">",">","ppo.reset_frame_stack","(",")",">",">",">","ob","=","env.reset","(",")",">",">",">","while","not","done",":",">",">",">","logits",",","value","=","ppo.infer","(","ob",")",">",">",">","ob",",","_",",","done",",","_","=","env.step","(","action",")"]
code: def reset_frame_stack(self, frame_stack=None):
      if frame_stack is None:
          self._frame_stack.fill(0)
      else:
          assert (
              frame_stack.shape == self.frame_stack_shape
          ), "{}, {}".format(frame_stack.shape, self.frame_stack_shape)
          self._frame_stack = frame_stack.copy()
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  import os
  import re
  import gym
  import numpy
  import six
  from tensor2tensor.models.research.rl import get_policy
  from tensor2tensor.models.research.rl import make_simulated_env_fn_from_hparams
  from tensor2tensor.rl import rl_utils
  from tensor2tensor.rl.envs.simulated_batch_gym_env import FlatBatchEnv
  from tensor2tensor.utils import hparam
  from tensor2tensor.utils import trainer_lib
  from tensor2tensor.utils.misc_utils import camelcase_to_snakecase
  import tensorflow.compat.v1
label_desc: Use image node_id 3 for calling the PPOPolicyInferencer obj's underlying member method code with example usage: obj.reset_frame_stack(frame_stack) without return types