docstr: Used for forward pass through head network.
  
  :param (mx.nd or mx.sym) F: backend api (mx.sym if block has been hybridized).
  :param x: middleware state representation,
      of shape (batch_size, in_channels) or
      of shape (batch_size, time_step, in_channels).
  :return: batch of probabilities for each action,
      of shape (batch_size, action_mean) or
      of shape (batch_size, time_step, action_mean).
docstr_tok: ["Used","for","forward","pass","through","head","network",".",":","param","(","mx.nd","or","mx.sym",")","F",":","backend","api","(","mx.sym","if","block","has","been","hybridized",")",".",":","param","x",":","middleware","state","representation",",","of","shape","(","batch_size",",","in_channels",")","or","of","shape","(","batch_size",",","time_step",",","in_channels",")",".",":","return",":","batch","of","probabilities","for","each","action",",","of","shape","(","batch_size",",","action_mean",")","or","of","shape","(","batch_size",",","time_step",",","action_mean",")","."]
code: def hybrid_forward(
      self, F: ModuleType, x: nd_sym_type, log_std: nd_sym_type
  ) -> Tuple[nd_sym_type, nd_sym_type]:
      """
      Used for forward pass through head network.
  
      :param (mx.nd or mx.sym) F: backend api (mx.sym if block has been hybridized).
      :param x: middleware state representation,
          of shape (batch_size, in_channels) or
          of shape (batch_size, time_step, in_channels).
      :return: batch of probabilities for each action,
          of shape (batch_size, action_mean) or
          of shape (batch_size, time_step, action_mean).
      """
      policy_means = self.dense(x)
      policy_std = broadcast_like(
          F, log_std.exp().expand_dims(0), policy_means
      )
      return policy_means, policy_std
  
imports: from typing import List, Tuple, Union
  from types import ModuleType
  import math
  import mxnet
  from mxnet.gluon import nn
  from rl_coach.base_parameters import AgentParameters
  from rl_coach.core_types import ActionProbabilities
  from rl_coach.spaces import SpacesDefinition, BoxActionSpace, DiscreteActionSpace
  from rl_coach.utils import eps
  from rl_coach.architectures.mxnet_components.heads.head import Head, HeadLoss, LossInputSchema, NormalizedRSSInitializer
  from rl_coach.architectures.mxnet_components.heads.head import LOSS_OUT_TYPE_LOSS, LOSS_OUT_TYPE_REGULARIZATION
  from rl_coach.architectures.mxnet_components.utils import hybrid_clip, broadcast_like
label_desc: Use image node_id 2 for calling the ContinuousPPOHead obj's underlying member method code with example usage: obj.hybrid_forward(F, x, log_std) and returns: policy_means,  policy_std