Я хотел бы напечатать метки 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. Любое предложение?
Я хотел бы получить каждый отдельный пример и соответствующую метку. Поэтому мой вопрос: содержит ли набор данных несколько примеров? (для меня это не похоже, потому что .labelCounts() отправляет только одно значение) – Arcyno
Да, это мини-чат. Пожалуйста, прочитайте, как работает nd4j. http://nd4j.org/tensor –