code: public <T> T output(@NonNull ModelAdapter<T> adapter, INDArray[] input, INDArray[] inputMasks, INDArray[] labelsMasks) {
          val holder = selector.getModelForThisThread();
          Model model = null;
          boolean acquired = false;
          try {
              model = holder.acquireModel();
              acquired = true;
              return adapter.apply(model, input, inputMasks, labelsMasks);
          } catch (InterruptedException e) {
              throw new RuntimeException(e);
          } finally {
              if (model != null && acquired)
                  holder.releaseModel(model);
          }
      }
docs: This method does forward pass and returns output provided by OutputAdapter
  
  @param adapter
  @param input
  @param inputMasks
  @param <T>
  @return