2016-11-11 5 views
0

Ich möchte die Etiketten von traindata/testdata, die in der Klassifizierung verwendet werden, ausdrucken. Hier ist die Definition der beiden Eingänge (mit deep4j).Display-Etiketten von Daten [deep4j]

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

, die dann in DataSetIterator wie folgt umgewandelt werden:

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"); 
    } 
} 

The:

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

Dann mag ich drucken, wie viele Beispiele pro Etikett, wo in jedem Iterator in dieser Funktion gefunden Problem ist, dass es nur ein Beispiel pro Etikett anzeigt, wohingegen es viel mehr geben sollte ... Und wenn ich mein Dataset nicht unter Verwendung von fileSplit.sample() aufspalte, zeigt die Funktion die richtige Anzahl von e an Beispiele. Irgendwelche Vorschläge?

Antwort

0

Wenn Sie einen Datensatz verwenden, können Sie den toString() verwenden, der dataset.getFeatureMatrix() und dataset.getLabels()

Wenn Sie nur das Label zählt drucken möchten, können Sie dataset.labelCounts verwenden () Ich würde mehr auf die dl4j Javadoc schauen: http://deeplearning4j.org/doc

+0

Ich möchte jedes einzelne Beispiel und seine entsprechende Bezeichnung abrufen. Meine Frage ist also: Enthält ein Datensatz mehrere Beispiele? (Das scheint mir nicht der Fall zu sein, da .labelCounts() nur einen Wert zurücksendet) – Arcyno

+0

Ja, es ist ein Minibatch. Bitte lesen Sie, wie nd4j funktioniert. http://nd4j.org/tensor –