【问题标题】:Display labels of data [deep4j]显示数据标签 [deep4j]
【发布时间】:2016-11-11 12:27:50
【问题描述】:

我想打印分类中使用的 traindata / testdata 的标签。这是两个输入的定义(使用 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() 拆分我的数据集时,该函数会显示正确数量的示例。 有什么建议吗?

【问题讨论】:

    标签: java deep-learning deeplearning4j


    【解决方案1】:

    如果你使用数据集,你可以使用 dataset.getFeatureMatrix() 和 dataset.getLabels() 的 toString()

    如果您只想打印标签计数,可以使用 dataset.labelCounts() 我会更多地查看 dl4j javadoc: http://deeplearning4j.org/doc

    【讨论】:

    • 我想检索每个示例及其对应的标签。所以我的问题是:数据集是否包含多个示例? (对我来说似乎不是这样,因为 .labelCounts() 只发回一个值)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 2023-03-05
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多