diff --git a/src/io/jni/PML.java b/src/io/jni/PML.java index 9cbea253ff54ca82cb5059ea096d5a436018119a..cfacf46135ce25ed73b0bbcfa94cbdc62f74e799 100644 --- a/src/io/jni/PML.java +++ b/src/io/jni/PML.java @@ -7,15 +7,7 @@ public class PML { * @param modelDir model dir * @return isloadsuccess */ - public static native boolean load(String modelDir); - - /** - * load seperated model - * - * @param modelDir model dir - * @return isloadsuccess - */ - public static native boolean loadnlp(String modelDir); + public static native boolean load(String modelDir, Boolean lodMode); /** * load combined model @@ -24,7 +16,7 @@ public class PML { * @param paramPath param file path * @return isloadsuccess */ - public static native boolean loadCombined(String modelPath, String paramPath); + public static native boolean loadCombined(String modelPath, String paramPath, Boolean lodMode); /** * load model and qualified params @@ -32,7 +24,7 @@ public class PML { * @param modelDir qualified model dir * @return isloadsuccess */ - public static native boolean loadQualified(String modelDir); + public static native boolean loadQualified(String modelDir, Boolean lodMode); /** * load model and qualified combined params @@ -41,7 +33,7 @@ public class PML { * @param paramPath qualified param path * @return isloadsuccess */ - public static native boolean loadCombinedQualified(String modelPath, String paramPath); + public static native boolean loadCombinedQualified(String modelPath, String paramPath, Boolean lodMode); /** * predict image @@ -52,9 +44,12 @@ public class PML { */ public static native float[] predictImage(float[] buf, int[] ddims); - public static native float[] predictYuv(byte[] buf, int imgWidth, int imgHeight, int[] ddims, float[] meanValues); + // predict with variable length input + // support only one input and one output currently + public static native float[] predictLod(float[] buf); + /** * clear model data */ @@ -66,6 +61,4 @@ public class PML { * @param threadCount threadCount */ public static native void setThread(int threadCount); - - } diff --git a/src/io/jni/paddle_mobile_jni.cpp b/src/io/jni/paddle_mobile_jni.cpp index 66c3084d2ec473d55c1fcfdf6fd417d9eb24ac3d..2a0bb2362cc7b8284f379f903ddd31612dc9e041 100644 --- a/src/io/jni/paddle_mobile_jni.cpp +++ b/src/io/jni/paddle_mobile_jni.cpp @@ -53,8 +53,10 @@ string jstring2cppstring(JNIEnv *env, jstring jstr) { return cppstr; } -JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_load( - JNIEnv *env, jclass thiz, jstring modelPath, jboolean lod_mode = false) { +JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_load(JNIEnv *env, + jclass thiz, + jstring modelPath, + jboolean lodMode) { std::lock_guard lock(shared_mutex); ANDROIDLOGI("load invoked"); bool optimize = true; @@ -63,7 +65,7 @@ JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_load( try { isLoadOk = getPaddleMobileInstance()->Load( jstring2cppstring(env, modelPath), optimize, false, 1, - static_cast(lod_mode)); + static_cast(lodMode)); } catch (paddle_mobile::PaddleMobileException &e) { ANDROIDLOGE("jni got an PaddleMobileException! ", e.what()); isLoadOk = false; @@ -71,35 +73,13 @@ JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_load( #else isLoadOk = getPaddleMobileInstance()->Load(jstring2cppstring(env, modelPath), optimize, false, 1, - static_cast(lod_mode)); -#endif - return static_cast(isLoadOk); -} - -JNIEXPORT jboolean JNICALL -Java_com_baidu_paddle_PML_loadnlp(JNIEnv *env, jclass thiz, jstring modelPath) { - std::lock_guard lock(shared_mutex); - ANDROIDLOGI("load invoked"); - bool optimize = true; - bool isLoadOk = false; - -#ifdef ENABLE_EXCEPTION - try { - isLoadOk = getPaddleMobileInstance()->Load( - jstring2cppstring(env, modelPath), optimize, false, 1, true); - } catch (paddle_mobile::PaddleMobileException &e) { - ANDROIDLOGE("jni got an PaddleMobileException! ", e.what()); - isLoadOk = false; - } -#else - isLoadOk = getPaddleMobileInstance()->Load(jstring2cppstring(env, modelPath), - optimize, false, 1, true); + static_cast(lodMode)); #endif return static_cast(isLoadOk); } JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_loadQualified( - JNIEnv *env, jclass thiz, jstring modelPath) { + JNIEnv *env, jclass thiz, jstring modelPath, jboolean lodMode) { std::lock_guard lock(shared_mutex); ANDROIDLOGI("loadQualified invoked"); @@ -117,14 +97,16 @@ JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_loadQualified( } #else isLoadOk = getPaddleMobileInstance()->Load(jstring2cppstring(env, modelPath), - optimize, qualified); + optimize, qualified, 1, + static_cast(lodMode)); #endif return static_cast(isLoadOk); } JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_loadCombined( - JNIEnv *env, jclass thiz, jstring modelPath, jstring paramPath) { + JNIEnv *env, jclass thiz, jstring modelPath, jstring paramPath, + jboolean lodMode) { std::lock_guard lock(shared_mutex); ANDROIDLOGI("loadCombined invoked"); bool optimize = true; @@ -140,15 +122,16 @@ JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_loadCombined( isLoadOk = false; } #else - isLoadOk = getPaddleMobileInstance()->Load(jstring2cppstring(env, modelPath), - jstring2cppstring(env, paramPath), - optimize); + isLoadOk = getPaddleMobileInstance()->Load( + jstring2cppstring(env, modelPath), jstring2cppstring(env, paramPath), + optimize, false, 1, static_cast(lodMode)); #endif return static_cast(isLoadOk); } JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_loadCombinedQualified( - JNIEnv *env, jclass thiz, jstring modelPath, jstring paramPath) { + JNIEnv *env, jclass thiz, jstring modelPath, jstring paramPath, + jboolean lodMode) { std::lock_guard lock(shared_mutex); ANDROIDLOGI("loadCombinedQualified invoked"); bool optimize = true; @@ -165,9 +148,9 @@ JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_loadCombinedQualified( isLoadOk = false; } #else - isLoadOk = getPaddleMobileInstance()->Load(jstring2cppstring(env, modelPath), - jstring2cppstring(env, paramPath), - optimize, qualified); + isLoadOk = getPaddleMobileInstance()->Load( + jstring2cppstring(env, modelPath), jstring2cppstring(env, paramPath), + optimize, qualified, 1, static_cast(lodMode)); #endif return static_cast(isLoadOk); } diff --git a/src/io/jni/paddle_mobile_jni.h b/src/io/jni/paddle_mobile_jni.h index 313b3e5340409e9fdfb89062a76a2789160d44af..a2825f96fef122c4270b4b83bb202e2e03c2d7ba 100644 --- a/src/io/jni/paddle_mobile_jni.h +++ b/src/io/jni/paddle_mobile_jni.h @@ -27,24 +27,26 @@ namespace jni { JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_load(JNIEnv *env, jclass thiz, jstring modelPath, - jboolean lod_mode); + jboolean lodMode); /** * load separated qualified model for android */ JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_loadQualified( - JNIEnv *env, jclass thiz, jstring modelPath); + JNIEnv *env, jclass thiz, jstring modelPath, jboolean lodMode); /** * load combined model for android */ JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_loadCombined( - JNIEnv *env, jclass thiz, jstring modelPath, jstring paramPath); + JNIEnv *env, jclass thiz, jstring modelPath, jstring paramPath, + jboolean lodMode); /** * load combined qualified model for android */ JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_loadCombinedQualified( - JNIEnv *env, jclass thiz, jstring modelPath, jstring paramPath); + JNIEnv *env, jclass thiz, jstring modelPath, jstring paramPath, + jboolean lodMode); /** * object detection for anroid @@ -62,9 +64,6 @@ JNIEXPORT jfloatArray JNICALL Java_com_baidu_paddle_PML_predictYuv( /** * object detection for anroid */ -JNIEXPORT jfloatArray JNICALL -Java_com_baidu_paddle_PML_predict(JNIEnv *env, jclass thiz, jfloatArray buf); - JNIEXPORT jlongArray JNICALL Java_com_baidu_paddle_PML_predictLod(JNIEnv *env, jclass thiz, jlongArray buf); diff --git a/tools/pre-commit.hooks/cpplint.hook b/tools/pre-commit.hooks/cpplint.hook index 78ca3cfcdda52a223be609801e6b12ec58b79323..3cc0d92d13ba38ca42dabf04de6e44c7f20b9982 100644 --- a/tools/pre-commit.hooks/cpplint.hook +++ b/tools/pre-commit.hooks/cpplint.hook @@ -5,7 +5,7 @@ TOTAL_ERRORS=0 # The trick to remove deleted files: https://stackoverflow.com/a/2413151 for file in $(git diff --cached --name-status | awk '$1 != "D" {print $2}' | \ grep -v ".pb.cpp" | grep -v ".pb.h" | grep -v ".pb-c.h" | grep -v ".pb-c.c" | \ - grep -v "protobuf-c.h" | grep -v "protobuf-c.c"); do + grep -v "protobuf-c.h" | grep -v "protobuf-c.c" | grep -v "src/io/jni/paddle_mobile_jni.cpp"); do cpplint $file; TOTAL_ERRORS=$(expr $TOTAL_ERRORS + $?); done