code: def test_ppo_v_head():
      agent_parameters = ClippedPPOAgentParameters()
      action_space = DiscreteActionSpace(num_actions=5)
      spaces = SpacesDefinition(
          state=None, goal=None, action=action_space, reward=None
      )
      value_net = VHead(
          agent_parameters=agent_parameters,
          spaces=spaces,
          network_name="test_v_head",
      )
      value_net.initialize()
      batch_size = 15
      middleware_data = mx.nd.random.uniform(shape=(batch_size, 100))
      values = value_net(middleware_data)
      assert values.ndim == 1  # (batch_size)
      assert values.shape[0] == batch_size
  
file_path: coach/rl_coach/tests/architectures/mxnet_components/heads/test_v_head.py
imports: import mxnet
  import os
  import pytest
  import sys
  from rl_coach.architectures.mxnet_components.heads.v_head import VHead, VHeadLoss
  from rl_coach.agents.clipped_ppo_agent import ClippedPPOAlgorithmParameters, ClippedPPOAgentParameters
  from rl_coach.spaces import SpacesDefinition, DiscreteActionSpace
label_desc: Use image node_id 3 for calling a global function with example usage: test_ppo_v_head() without return types