communications¶ attention_comm¶ class xuance.mindspore.communications.attention_comm.TarMAC(*args: Any, **kwargs: Any)[source]¶ Bases: IC3NetComm attention_block(q, k, v)[source]¶ forward(obs: torch.Tensor, msg_send: dict, alive_ally: dict, gate_control: dict = None, agent_key: str | None = None) → torch.Tensor[source]¶ base_comm¶ class xuance.mindspore.communications.base_comm.BaseComm(*args: Any, **kwargs: Any)[source]¶ Bases: Module forward(hidden_features: torch.Tensor)[source]¶ class xuance.mindspore.communications.base_comm.NoneComm(*args: Any, **kwargs: Any)[source]¶ Bases: Module forward(msg: torch.Tensor, **kwargs)[source]¶ comm_net¶ class xuance.mindspore.communications.comm_net.CommNet(*args: Any, **kwargs: Any)[source]¶ Bases: Module create_mlp(input_shape: int, layers: list, out_shape: int, activation: torch.nn.Module, device: str | torch.device) → torch.nn.Sequential[source]¶ forward(obs: torch.Tensor, msg_send: dict, alive_ally: dict) → torch.Tensor[source]¶ message_encode(message: torch.Tensor) → torch.Tensor[source]¶ obs_encode(observation)[source]¶ emergent_comm¶ gnn_comm¶ class xuance.mindspore.communications.gnn_comm.DGNComm(*args: Any, **kwargs: Any)[source]¶ Bases: Module forward(key: str, obs: dict, alive_ally: dict)[source]¶ gcn(obs, matrix, alive_ally)[source]¶ obs_encode(observation)[source]¶ ic3net_comm¶ class xuance.mindspore.communications.ic3net_comm.IC3NetComm(*args: Any, **kwargs: Any)[source]¶ Bases: CommNet forward(obs: torch.Tensor, msg_send: dict, alive_ally: dict, gate_control: dict = None)[source]¶