docstr: Create a list of input array shapes
  :return: type of input shapes
docstr_tok: ["Create","a","list","of","input","array","shapes",":","return",":","type","of","input","shapes"]
code: def _model_input_shapes(self) -> List[List[int]]:
      """
      Create a list of input array shapes
      :return: type of input shapes
      """
      allowed_inputs = copy.copy(self.spaces.state.sub_spaces)
      allowed_inputs["action"] = copy.copy(self.spaces.action)
      allowed_inputs["goal"] = copy.copy(self.spaces.goal)
      embedders = self.model.nets[0].input_embedders
      return list(
          [1] + allowed_inputs[emb.embedder_name].shape.tolist()
          for emb in embedders
      )
  
imports: import copy
  from typing import Any, Dict, Generator, List, Tuple, Union
  import numpy
  import mxnet
  from mxnet import autograd, gluon, nd
  from mxnet.ndarray import NDArray
  from rl_coach.architectures.architecture import Architecture
  from rl_coach.architectures.mxnet_components.heads.head import LOSS_OUT_TYPE_LOSS, LOSS_OUT_TYPE_REGULARIZATION
  from rl_coach.architectures.mxnet_components import utils
  from rl_coach.architectures.mxnet_components.savers import ParameterDictSaver, OnnxSaver
  from rl_coach.base_parameters import AgentParameters
  from rl_coach.logger import screen
  from rl_coach.saver import SaverCollection
  from rl_coach.spaces import SpacesDefinition
  from rl_coach.utils import force_list, squeeze_list
label_desc: Use image node_id 5 for calling the MxnetArchitecture obj's underlying member method code with example usage: obj._model_input_shapes() and returns: list