code: @Override
      public INDArray getParam(String param) {
          //Get params for MultiLayerNetwork sub layers.
          int idx = param.indexOf('_');
          if (idx == -1)
              throw new IllegalStateException("Invalid param key: does not have layer separator: \"" + param + "\"");
          int layerIdx = Integer.parseInt(param.substring(0, idx));
          String newKey = param.substring(idx + 1);
  
          return layers[layerIdx].getParam(newKey);
      }
docs: Get one parameter array for the network.<br>
  In MultiLayerNetwork, parameters are keyed like "0_W" and "0_b" to mean "weights of layer index 0" and "biases
  of layer index 0" respectively. Numbers increment sequentially, and the suffixes ("W", "b" etc) depend on the
  layer type, and are defined in the relevant parameter initializers for each layer.<br>
  Note that the returned INDArrays are views of the underlying network parameters, so modifications of the returned
  arrays will impact the parameters of the network.
  
  @param param the key of the parameter
  @return The specified parameter array for the network
  @see #paramTable() paramTable() method, for a map of all parameters