Files
paddlepaddle--paddle/paddle/fluid/inference/experimental/javaapi/test.java
T
2026-07-13 12:40:42 +08:00

68 lines
2.2 KiB
Java

import com.baidu.paddle.inference.Predictor;
import com.baidu.paddle.inference.Config;
import com.baidu.paddle.inference.Tensor;
public class test {
static {
System.loadLibrary("paddle_inference");
}
public static void main(String[] args) {
Config config = new Config();
config.setCppModel(args[0], args[1]);
config.enableMemoryOptim(true);
config.enableProfile();
config.enableMKLDNN();
System.out.println("summary:\n" + config.summary());
System.out.println("model dir:\n" + config.getCppModelDir());
System.out.println("prog file:\n" + config.getProgFile());
System.out.println("params file:\n" + config.getCppParamsFile());
config.getCpuMathLibraryNumThreads();
config.getFractionOfGpuMemoryForPool();
config.switchIrDebug(false);
System.out.println(config.summary());
Predictor predictor = Predictor.createPaddlePredictor(config);
long n = predictor.getInputNum();
String inNames = predictor.getInputNameById(0);
Tensor inHandle = predictor.getInputHandle(inNames);
inHandle.reshape(4, new int[]{1, 3, 224, 224});
float[] inData = new float[1*3*224*224];
inHandle.copyFromCpu(inData);
predictor.run();
String outNames = predictor.getOutputNameById(0);
Tensor outHandle = predictor.getOutputHandle(outNames);
float[] outData = new float[outHandle.getSize()];
outHandle.copyToCpu(outData);
predictor.tryShrinkMemory();
predictor.clearIntermediateTensor();
System.out.println(outData[0]);
System.out.println(outData.length);
outHandle.destroyNativeTensor();
inHandle.destroyNativeTensor();
predictor.destroyNativePredictor();
Config newConfig = new Config();
newConfig.setCppModelDir("/model_dir");
newConfig.setCppProgFile("/prog_file");
newConfig.setCppParamsFile("/param");
System.out.println("model dir:\n" + newConfig.getCppModelDir());
System.out.println("prog file:\n" + newConfig.getProgFile());
System.out.println("params file:\n" + newConfig.getCppParamsFile());
config.destroyNativeConfig();
}
}