def __init__(self, agent_num: int, obs_shape: int, action_shape: int) -> None:
        """
        **Overview**:
            The definition of shared parameters actor-critic network in policy gradient algorithms for multi-agent scenarios.
            Each agent shares the same parameters in the network so that they can be processed as a batch in parallel.
        """
        # PyTorch necessary requirements for extending ``nn.Module`` . Our network should also subclass this class.
        super(SharedActorCriticNetwork, self).__init__()
        # The shape of forward input is $$(B, A, O)$$.
        self.agent_num = agent_num
        # Define a shared actor-critic network used for all the agents.
        self.actor_critic_network = ActorCriticNetwork(obs_shape, action_shape)

        **Overview**:
            The definition of shared parameters actor-critic network in policy gradient algorithms for multi-agent scenarios.
            Each agent shares the same parameters in the network so that they can be processed as a batch in parallel.
        
chapter6_marl/marl_network.py