2016-11-11 2 views
0

Я хотел бы напечатать метки traindata/testdata, используемые в классификации. Вот определение обоих входов (используя deep4j).Показать метки данных [deep4j]

InputSplit[] inputSplit = fileSplit.sample(pathFilter, splitTrainTest, 1 - splitTrainTest); 
    InputSplit trainData = inputSplit[0]; 
    InputSplit testData = inputSplit[1]; 

, которые затем преобразуются в DataSetIterator так:

ImageRecordReader recordReader = new ImageRecordReader(height, width, channels, labelMaker); 
    recordReader.initialize(trainData, null); 
    trainIter = new RecordReaderDataSetIterator(recordReader, batchSize, 1, numLabels); 

Тогда я хочу, чтобы напечатать сколько примеров на этикетках, где найдены в каждом итератора в этой функции:

public void print(DataSetIterator iter){ 

    HashMap<String, Integer> hash = new HashMap<String, Integer>(); 

    while(iter.hasNext()){ 
     DataSet example = iter.next(); 
     for(int i = 0 ; i<numLabels ; i++){ 
      if(example.getLabels().getDouble(i)==1.){ 
       String label = example.getLabelName(i); 
       if(hash.containsKey(label)) 
        hash.put(label, hash.get(label)+1); 
       else 
        hash.put(label, 1); 
      } 
     } 
    } 

    for (String label: hash.keySet()){ 
     System.out.println(" label : " + label.toString() + ", " + hash.get(label) + " examples"); 
    } 
} 

проблема заключается в том, что он отображает только один пример на метку, тогда как их должно быть намного больше ... И когда я не разбиваю свой набор данных с помощью fileSplit.sample(), функция отображает правильное число e xamples. Любое предложение?

ответ

0

При использовании набора данных вы можете использовать ToString() в dataset.getFeatureMatrix() и dataset.getLabels()

Если вы хотите напечатать только счетчики этикеток, вы можете использовать dataset.labelCounts () Я бы посмотрел больше на dl4j javadoc: http://deeplearning4j.org/doc

+0

Я хотел бы получить каждый отдельный пример и соответствующую метку. Поэтому мой вопрос: содержит ли набор данных несколько примеров? (для меня это не похоже, потому что .labelCounts() отправляет только одно значение) – Arcyno

+0

Да, это мини-чат. Пожалуйста, прочитайте, как работает nd4j. http://nd4j.org/tensor –