如何计算R中CNN模型的概率?

时间:2016-08-31 12:40:25

标签: r

我使用MXNET包构建并训练了用于图像分类的CNN模型,并使用下面的代码片段预测了模型数据的测试结果。

pred_test <- predict(model,test_array)
pred_test_label <- max.col(t(pred_test))-1
print(pred_test_label)

除此之外,我想知道测试结果与模型数据匹配的概率是多少,有什么方法可以检查吗?

2 个答案:

答案 0 :(得分:0)

您可以这样做:

# Prediction of test set
preds <- predict(model, test.array)
pred.label = max.col(t(preds))-1
accuracy <- function(label, pred) {
  ypred = max.col(t(as.array(pred)))
  return(sum((as.array(label) + 1) == ypred) / length(label))
}
print(paste0("Finish prediction...accuracy=", accuracy(test.y, preds)))

答案 1 :(得分:0)

添加pred_test列变量的所有元素以获取out_sum,然后通过out_sum划分pred_text的每个元素。这样,现在输出将总和为1,并且可以将其视为CNN的每个输出节点的概率。

或者,您也可以获得概率,如果您可以在模型初始化时配置CNN模型如下(注意使用out_activation =“softmax”):

java.util

使用此配置,CNN模型绑定为输出和为1,因此可以将输出的每个节点作为与每个输出节点对应的每个类的概率。