docstr: Calculate entropy of current distribution.
  
  See http://www.nowozin.net/sebastian/blog/the-entropy-of-a-normal-distribution.html
  :return: entropy,
      of shape (1) or
      of shape (batch_size) or
      of shape (batch_size, time_step).
docstr_tok: ["Calculate","entropy","of","current","distribution",".","See","http",":","\/\/www.nowozin.net\/sebastian\/blog\/the-entropy-of-a-normal-distribution.html",":","return",":","entropy",",","of","shape","(","1",")","or","of","shape","(","batch_size",")","or","of","shape","(","batch_size",",","time_step",")","."]
code: def entropy(self) -> nd_sym_type:
      """
      Calculate entropy of current distribution.
  
      See http://www.nowozin.net/sebastian/blog/the-entropy-of-a-normal-distribution.html
      :return: entropy,
          of shape (1) or
          of shape (batch_size) or
          of shape (batch_size, time_step).
      """
      # todo: check if differential entropy is correct
      log_det_sigma = self.log_det(self.sigma)
      return (
          (self.num_var / 2)
          + ((self.num_var / 2) * math.log(2 * math.pi))
          + ((1 / 2) * log_det_sigma)
      )
  
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 5 for calling the MultivariateNormalDist obj's underlying member method code with example usage: obj.entropy() and returns: unknown