docs: public INDArray getArrForVarName(@NonNull String varName) {
          Preconditions.checkState(variables.containsKey(varName), "No variable found with name \"%s\"", varName);
          SDVariable v = variables.get(varName).getVariable();
          switch(v.getVariableType()){
              case VARIABLE:
                  if(!variablesArrays.containsKey(varName)) {
                      //VARIBALE type arrays should have a parameter initializer...
                      // we should use this to azy init the array if none is present
                      v.storeAndAllocateNewArray();
                  }
                  return variablesArrays.get(varName).get();
              case CONSTANT:
                  if(!constantArrays.containsKey(varName))
                      return null;
                  return constantArrays.get(varName).get();
              case ARRAY:
                  //Only stored in inference session...
                  InferenceSession s = sessions.get(Thread.currentThread().getId());
                  if(s == null)
                      return null;
                  return s.get(varName, InferenceSession.OUTER_FRAME, 0, null, false);
              case PLACEHOLDER:
                  long tid = Thread.currentThread().getId();
                  if(placeholdersPerThread.get(tid) == null || !placeholdersPerThread.get(tid).containsKey(varName))
                      return null;
                  return placeholdersPerThread.get(tid).get(varName);
              default:
                  throw new RuntimeException("Unknown variable type: " + v.getVariableType());
          }
      }