class_docstr: Simple feed forward policy network.
      
class_docstr_tok: ["Simple","feed","forward","policy","network","."]
docstr: forward pass. 
docstr_tok: ["forward","pass","."]
code: def forward(self, x):
      """forward pass."""
      return self.perception_net(x)
  
imports: from collections import OrderedDict
  from typing import Dict, Union, Sequence
  import torch.nn
  from gym import spaces
  from maze.core.agent.torch_actor_critic import TorchActorCritic
  from maze.core.agent.torch_policy import TorchPolicy
  from maze.core.agent.torch_state_action_critic import TorchStepStateActionCritic
  from maze.core.wrappers.maze_gym_env_wrapper import GymMazeEnv
  from maze.distributions.distribution_mapper import DistributionMapper
  from maze.perception.blocks.feed_forward.dense import DenseBlock
  from maze.perception.blocks.general.concat import ConcatenationBlock
  from maze.perception.blocks.inference import InferenceBlock
  from maze.perception.blocks.output.linear import LinearOutputBlock
  from maze.perception.perception_utils import observation_spaces_to_in_shapes
  from maze.perception.weight_init import make_module_init_normc
  from maze.train.parallelization.vector_env.sequential_vector_env import SequentialVectorEnv
  from maze.train.trainers.common.evaluators.rollout_evaluator import RolloutEvaluator
  from maze.train.parallelization.distributed_actors.dummy_distributed_workers_with_buffer import DummyDistributedWorkersWithBuffer
  from maze.train.trainers.common.replay_buffer.uniform_replay_buffer import UniformReplayBuffer
  from maze.train.trainers.sac.sac_algorithm_config import SACAlgorithmConfig
  from maze.train.trainers.sac.sac_runners import SACRunner
  from maze.train.trainers.sac.sac_trainer import SAC
label_desc: Use image node_id 2 for calling the PolicyNet obj's underlying member method code with example usage: obj.forward(x) and returns: self