Android 如何获得我对caffe mobile预测的信心?

Android 如何获得我对caffe mobile预测的信心?,android,android-ndk,convolution,caffe,conv-neural-network,Android,Android Ndk,Convolution,Caffe,Conv Neural Network,我正在努力获得我对caffe mobile的预测的信心。在python中,很容易获得它,我只是: prediction = mNet.predict([image]) print prediction 我得到以下输出: [ 0.32693869 0.20242123 0.26447725 0.20616281] Caffe 1.0 Caffe 0.0 Caffe 0.0 Caffe 0.0 我有四节课,所以这些是我班的信心 在android上,如果我这样做: int[] predic

我正在努力获得我对caffe mobile的预测的信心。在python中,很容易获得它,我只是:

prediction = mNet.predict([image])
print prediction
我得到以下输出:

[ 0.32693869  0.20242123  0.26447725  0.20616281]
Caffe 1.0
Caffe 0.0
Caffe 0.0
Caffe 0.0
我有四节课,所以这些是我班的信心

在android上,如果我这样做:

int[] prediction = caffeMobile.predictImage(imgPath);
for (int i = 0; i < prediction.length; i++) {
    Log.i("Caffe", String.valueOf(prediction[i]));
}
我认为我必须实现这个方法,因为
prediction
的大小是1。但我如何改变,我必须改变哪些文件才能让它在android上工作

那么,我如何使用android来实现这一点呢

更新:

我在caffe_jni.cpp中添加了以下内容:

JNIEXPORT jfloatArray JNICALL
Java_com_sh1r0_caffe_1android_1lib_CaffeMobile_getConfidence(JNIEnv *env,
                                                        jobject thiz,
                                                        jstring imgPath) {
  CaffeMobile *caffe_mobile = CaffeMobile::Get();
  vector<float> confidence = caffe_mobile->GetConfidence(jstring2string(env, imgPath));

  jfloatArray result;
  result = env->NewFloatArray(4);
  if (result == NULL) {
    return NULL; /* out of memory error thrown */
  }
  env->SetFloatArrayRegion(result, 0, 4, &confidence[0]);
  return result;
}
vector<float> CaffeMobile::GetConfidence(const string &img_path) {
  const vector<float> probs = Forward(img_path);
  return probs;
}
我将此添加到caffe android类:

public native float[] getConfidence(String imgPath);
并称之为这个方法

float[] confidence = caffeMobile.getConfidence(imgPath);
但是,它只返回一个四舍五入的值(我认为)

如果
4
,则输出(我有4个类)

因此:

或者,如果尝试将标记为2的图像分类,则这是输出:

Caffe 0.0
Caffe 1.0
Caffe 0.0
Caffe 0.0
我做错了什么,还是不可能

for (int i = 0; i < confidence.length; i++) {
    Log.i("Caffe", String.valueOf(confidence[i]));
}
Caffe 1.0
Caffe 0.0
Caffe 0.0
Caffe 0.0
Caffe 0.0
Caffe 1.0
Caffe 0.0
Caffe 0.0