diff --git a/mindspore/lite/java/build_aar.sh b/mindspore/lite/java/build_aar.sh index fd6faa86b4087338daebe83da8a3ee6a395e187a..c2b1251298579083fa5a74016a3757b6733ba528 100644 --- a/mindspore/lite/java/build_aar.sh +++ b/mindspore/lite/java/build_aar.sh @@ -15,10 +15,10 @@ fi # copy arm64 so cd ${TOP_PATH}/output/ -rm -rf mindspore-lite-0.6.0 -tar -zxvf mindspore-lite-0.6.0-runtime-arm64-cpu.tar.gz +rm -rf mindspore-lite-0.7.0 +tar -zxvf mindspore-lite-0.7.0-runtime-arm64-cpu.tar.gz mkdir -p ${BASE_PATH}/lib/ -cp ${TOP_PATH}/output/mindspore-lite-0.6.0/lib/libmindspore-lite.so ${BASE_PATH}/lib/ +cp ${TOP_PATH}/output/mindspore-lite-0.7.0/lib/libmindspore-lite.so ${BASE_PATH}/lib/ cp ${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so ${BASE_PATH}/lib/ # build jni so diff --git a/mindspore/lite/java/java/app/src/main/java/com/mindspore/lite/MSTensor.java b/mindspore/lite/java/java/app/src/main/java/com/mindspore/lite/MSTensor.java index 6092ab8ebca751b26e4b62173c6982f45bae8d60..3e4274e31e5f22299dadc9e04e201be0f688a0b5 100644 --- a/mindspore/lite/java/java/app/src/main/java/com/mindspore/lite/MSTensor.java +++ b/mindspore/lite/java/java/app/src/main/java/com/mindspore/lite/MSTensor.java @@ -16,6 +16,8 @@ package com.mindspore.lite; +import android.util.Log; + public class MSTensor { private long tensorPtr; @@ -52,6 +54,10 @@ public class MSTensor { return this.getData(this.tensorPtr); } + public float[] getFloatData() { + return decodeBytes(this.getData(this.tensorPtr)); + } + public void setData(byte[] data) { this.setData(this.tensorPtr, data, data.length); } @@ -69,6 +75,24 @@ public class MSTensor { this.tensorPtr = 0; } + private float[] decodeBytes(byte[] bytes) { + if (bytes.length % 4 != 0) { + Log.e("MS_LITE", "Length of bytes should be multi of 4 "); + return null; + } + int size = bytes.length / 4; + float[] ret = new float[size]; + for (int i = 0; i < size; i=i+4) { + int accNum = 0; + accNum = accNum | (bytes[i] & 0xff) << 0; + accNum = accNum | (bytes[i+1] & 0xff) << 8; + accNum = accNum | (bytes[i+2] & 0xff) << 16; + accNum = accNum | (bytes[i+3] & 0xff) << 24; + ret[i/4] = Float.intBitsToFloat(accNum); + } + return ret; + } + private native long createMSTensor(int dataType, int[] shape, int shapeLen); private native int[] getShape(long tensorPtr);