code: public <T extends Evaluation> T evaluate(DataSetIterator iterator, List<String> labelsList, int topN) {
          if (labelsList == null)
              labelsList = iterator.getLabels();
  
          Layer outputLayer = getOutputLayer(0);
          if(getConfiguration().isValidateOutputLayerConfig()){
              OutputLayerUtil.validateOutputLayerForClassifierEvaluation(outputLayer.conf().getLayer(), Evaluation.class);
          }
  
          return (T)doEvaluation(iterator, new org.deeplearning4j.eval.Evaluation(labelsList, topN))[0];
      }
docs: Evaluate the network (for classification) on the provided data set, with top N accuracy in addition to standard accuracy.
  For 'standard' accuracy evaluation only, use topN = 1
  
  @param iterator   Iterator (data) to evaluate on
  @param labelsList List of labels. May be null.
  @param topN       N value for top N accuracy evaluation
  @return Evaluation object, summarizing the results of the evaluation on the provided DataSetIterator