我在尝试使用 DeepLearning4J,我想知道如何让分类器返回一个分数而不是标签。假设我使用了线性分类器教程中的代码,我希望ANN能够返回给定训练样本被标记为0或1的概率。当前的配置如下所示:
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder() .seed(123) .iterations(1) .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT) .learningRate(0.01) .updater(Updater.NESTEROVS) .momentum(0.9) .list() .layer(0, new DenseLayer.Builder() .nIn(2) .nOut(20) .weightInit(WeightInit.XAVIER) .activation(Activation.RELU) .build()) .layer(1, new OutputLayer.Builder(LossFunction.NEGATIVELOGLIKELIHOOD) .nIn(20) .nOut(2) .weightInit(WeightInit.XAVIER) .activation(Activation.SOFTMAX) .build()) .pretrain(false) .backprop(true) .build();
回答:
使用 model.output 即可。
你会得到一个 ndarray (http://nd4j.org/tensor) 的输出
输出使用了 softmax 函数,这意味着你会得到一个批次大小 x 标签数量的输出。