docs: @Override
      public void setParams(INDArray params) {
          if (flattenedParams == params) {
              return; //No op
          }
  
          if (flattenedParams != null && params.length() == flattenedParams.length()) {
              if (params != flattenedParams) {
                  flattenedParams.assign(params);
              }
          } else {
              if (flattenedParams == null)
                  flattenedParams = params.dup();
              int idx = 0;
              for (int i = 0; i < getLayers().length; i++) {
                  Layer layer = getLayer(i);
                  long range = layer.numParams();
                  if (range <= 0)
                      continue; //Some layers: no parameters (subsampling, etc)
                  INDArray get = params.get(NDArrayIndex.interval(0,0,true), NDArrayIndex.interval(idx, range + idx));
                  layer.setParams(get);
                  idx += range;
              }
          }
      }