docs: public INDArray rnnTimeStep(INDArray input, MemoryWorkspace outputWorkspace ) {
          try {
              boolean inputIs2d = input.rank() == 2;
              INDArray out = outputOfLayerDetached(false, FwdPassType.RNN_TIMESTEP, layers.length - 1, input, null, null, outputWorkspace);
              if (inputIs2d && out.rank() == 3 && layers[layers.length - 1].type() == Type.RECURRENT) {
                  //Return 2d output with shape [miniBatchSize,nOut]
                  // instead of 3d output with shape [miniBatchSize,nOut,1]
                  return out.tensorAlongDimension(0, 1, 0);
              }
              return out;
          } catch (OutOfMemoryError e){
              CrashReportingUtil.writeMemoryCrashDump(this, e);
              throw e;
          }
      }