Java API

    注意:输入的模型需要使用Model Optimize Tool转化为NaiveBuffer格式的优化模型。

    示例:

    1. MobileConfig config = new MobileConfig();
    2. // 设置NaiveBuffer格式模型目录
    3. config.setModelFromFile(modelfile);
    4. // 设置能耗模式
    5. config.setPowerMode(PowerMode.LITE_POWER_HIGH);
    6. // 设置工作线程数
    7. config.setThreads(1);
    8. // 根据MobileConfig创建PaddlePredictor
    9. PaddlePredictor predictor = PaddlePredictor.createPaddlePredictor(config);

    设置模型文件夹路径。

    参数:

    • model_file(String) - 模型文件路径

    返回:None

    返回类型:void

    setModelDir(model_dir)

    注意:Lite模型格式在release/v2.3.0之后修改,本接口为加载老格式模型的接口,将在release/v3.0.0废弃。建议替换为setModelFromFile接口。

    设置模型文件夹路径。

    参数:

    • model_dir(String) - 模型文件夹路径

    返回:None

    返回类型:void

    setModelFromBuffer(model_buffer)

    设置模型的内存数据,当需要从内存加载模型时使用。

    参数:

    • model_buffer(str) - 内存中的模型数据

    返回:None

    返回类型:void

    getModelDir()

    返回设置的模型文件夹路径。

    参数:

    • None

    返回:模型文件夹路径

    返回类型:String

    setPowerMode(mode)

    设置CPU能耗模式。若不设置,则默认使用LITE_POWER_HIGH

    注意:只在开启OpenMP时生效,否则系统自动调度。

    参数:

    • mode(PowerMode) - CPU能耗模式。

    返回:None

    返回类型:

    获取设置的CPU能耗模式。

    参数:

    • None

    返回类型:PowerMode

    setThreads(threads)

    设置工作线程数。若不设置,则默认使用单线程。

    注意:只在开启OpenMP的模式下生效,否则只使用单线程。

    参数:

    • threads(int) - 工作线程数。默认为1。

    返回:None

    返回类型:void

    getThreads()

    获取设置的工作线程数。

    参数:

    • None

    返回:工作线程数

    返回类型:int

    1. public class PaddlePredictor;

    PaddlePredictor是Paddle-Lite的预测器。用户可以根据PaddlePredictor提供的接口使用MobileConfig创建新的预测器、设置输入数据、执行模型预测、获取输出以及获得当前使用lib的版本信息等。

    示例:

    CreatePaddlePredictor(config)

    1. public static PaddlePredictor createPaddlePredictor(ConfigBase config);

    CreatePaddlePredictor用来根据ConfigBase动态创建预测器,目前Java API支持使用MobileConfig`。框架会根据您在config中指定的模型路径、能耗模型、工作线程数等自动创建一个预测器。

    参数:

    • config(ConfigBase,目前应使用MobileConfig) - 创建预测器的配置信息

    返回:根据config创建完成的预测器

    返回类型:PaddlePredictor

    getInput(index)

    获取输入Tensor,用来设置模型的输入数据。

    参数:

    • index(int) - 输入Tensor的索引

    返回:第index个输入Tensor

    返回类型:Tensor

    获取输出Tensor,用来获取模型的输出结果。

    参数:

    • index(int) - 输出Tensor的索引

    返回:第index个输出Tensor

    返回类型:Tensor

    run()

    执行模型预测,需要在***设置输入数据后***调用。

    参数:

    • None

    返回类型:boolean

    getVersion()

    用于获取当前lib使用的代码版本。若代码有相应tag则返回tag信息,如v2.0-beta;否则返回代码的branch(commitid),如develop(7e44619)

    参数:

    • None

    返回:当前lib使用的代码版本信息

    返回类型:String

    1. public enum PowerMode;

    PowerMode为ARM CPU能耗模式,用户可以根据应用场景设置能耗模式获得最优的能效比。

    示例:

    PowerMode详细说明如下:

    1. public class Tensor;

    Tensor是Paddle-Lite的数据组织形式,用于对底层数据进行封装并提供接口对数据进行操作,包括设置维度、数据等。

    注意:用户应使用PaddlePredictorgetInputgetOuput接口获取输入/输出的Tensor

    示例:

    1. // 导入Java API
    2. import com.baidu.paddle.lite.MobileConfig;
    3. import com.baidu.paddle.lite.Predictor;
    4. import com.baidu.paddle.lite.PowerMode;
    5. // 设置MobileConfig
    6. MobileConfig config = new MobileConfig();
    7. config.setModelDir(modelPath);
    8. // 创建PaddlePredictor
    9. PaddlePredictor predictor = PaddlePredictor.createPaddlePredictor(config);
    10. // 设置输入数据
    11. long[] dims = {100, 100};
    12. float[] inputBuffer = new float[10000];
    13. for (int i = 0; i < 10000; ++i) {
    14. inputBuffer[i] = i;
    15. }
    16. // 获取输入Tensor
    17. Tensor input = predictor.getInput(0);
    18. // 设置输入维度
    19. input.resize(dims);
    20. // 设置输入数据
    21. input.setData(inputBuffer);
    22. // 执行预测
    23. predictor.run();
    24. // 获取输出Tensor
    25. Tensor result = predictor.getOutput(0);
    26. // 获取输出数据
    27. float[] output = result.getFloatData();
    28. for (int i = 0; i < 1000; ++i) {
    29. System.out.println(output[i]);
    30. }

    resize(dims)

    设置Tensor的维度信息。

    参数:

    • dims(long[]) - 维度信息

    返回:设置成功返回true,否则返回false

    返回类型:boolean

    shape()

    获取Tensor的维度信息。

    参数:

    • None

    返回:Tensor的维度信息

    返回类型:long[]

    设置Tensor数据。

    参数:

    返回:成功则返回true,否则返回false

    返回类型:boolean

    getFloatData()

    获取Tensor的底层float型数据。

    参数:

    • None

    返回:底层数据