class_docstr: PPO for policy learning.
code: def evaluate(self, env_fn, hparams, sampling_temp):
      with tf.Graph().as_default():
          with tf.name_scope("rl_eval"):
              eval_env = env_fn(in_graph=True)
              (collect_memory, _, collect_init) = _define_collect(
                  eval_env,
                  hparams,
                  "ppo_eval",
                  eval_phase=True,
                  frame_stack_size=self.frame_stack_size,
                  force_beginning_resets=False,
                  sampling_temp=sampling_temp,
                  distributional_size=self._distributional_size,
              )
              model_saver = tf.train.Saver(
                  tf.global_variables(hparams.policy_network + "/.*")
                  # tf.global_variables("clean_scope.*")  # Needed for sharing params.
              )
  
              with tf.Session() as sess:
                  sess.run(tf.global_variables_initializer())
                  collect_init(sess)
                  trainer_lib.restore_checkpoint(
                      self.agent_model_dir, model_saver, sess
                  )
                  sess.run(collect_memory)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import os
  from tensor2tensor.layers import common_layers
  from tensor2tensor.models.research.rl import get_policy
  from tensor2tensor.rl import ppo
  from tensor2tensor.rl.envs.tf_atari_wrappers import StackWrapper
  from tensor2tensor.rl.envs.tf_atari_wrappers import WrapperBase
  from tensor2tensor.rl.policy_learner import PolicyLearner
  from tensor2tensor.rl.restarter import Restarter
  from tensor2tensor.utils import trainer_lib
  import tensorflow.compat.v1
  import tensorflow_probability
label_desc: Use image node_id 3 for calling the PPOLearner obj's underlying member method code with example usage: obj.evaluate(env_fn, hparams, sampling_temp) without return types