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?
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
Ja, es ist ein Minibatch. Bitte lesen Sie, wie nd4j funktioniert. http://nd4j.org/tensor –