code: public void setOriginalPlaceHolderShape(String variableName, long[] shape) {
          if (!isPlaceHolder(variableName)) {
              throw new ND4JIllegalStateException("Vertex id " + variableName + " does not appear to be a place holder. Did you forget to call addPlaceHolder?");
          }
  
          if (shape == null) {
              throw new ND4JIllegalStateException("Null and 0 length shape arrays not allowed");
          }
  
  
          if (placeHolderOriginalShapes.containsKey(variableName) && !Arrays.equals(placeHolderOriginalShapes.get(variableName), shape)) {
              throw new ND4JIllegalStateException("Unable to add a new shape for vertex id " + variableName);
          }
  
          //after validation now only set once
          placeHolderOriginalShapes.put(variableName, shape);
  
      }
docs: Set the original shape for a given place holder.<br>
  This is used to track original shapes of place holder variables.<br>
  The reason we track original shapes is to validate possible candidate arrays coming in (especially with -1
  as the expected shapes).
  <p>
  Note that if {@link #isPlaceHolder(String)}
  returns false for the passed in vertex id,
  a {@link ND4JIllegalStateException} is thrown.
  <p>
  
  @param variableName the vertex id for the original shape
  @param shape        the shape of the place holder