|
@@ -17,25 +17,37 @@ public class DemoModel implements Model {
|
|
|
private Predictor sourcePredictor;
|
|
|
|
|
|
public void cleanModel() {
|
|
|
- this.sourcePredictor.destroyNativePredictor();
|
|
|
this.sourcePredictor = null;
|
|
|
}
|
|
|
|
|
|
public String predict(String param) {
|
|
|
-
|
|
|
long time1 = System.currentTimeMillis();
|
|
|
+ // 1 获取输入Tensor
|
|
|
Predictor predictor = Predictor.clonePaddlePredictor(sourcePredictor);
|
|
|
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];
|
|
|
+ for (int i = 0; i < predictor.getInputNum(); i++) {
|
|
|
+ log.info("predictor2 inName{}={}", i, predictor.getInputNameById(i));
|
|
|
+ }
|
|
|
+
|
|
|
+ for (int i = 0; i < predictor.getOutputNum(); i++) {
|
|
|
+ log.info("predictor2 outName{}={}", i, predictor.getOutputNameById(i));
|
|
|
+ }
|
|
|
+ // 2 设置输入
|
|
|
+ inHandle.reshape(2, new int[]{1, 157});
|
|
|
+ float[] inData = new float[1 * 157];
|
|
|
inHandle.copyFromCpu(inData);
|
|
|
+
|
|
|
+ // 3 预测
|
|
|
predictor.run();
|
|
|
+
|
|
|
+ // 4 获取输入Tensor
|
|
|
String outNames = predictor.getOutputNameById(0);
|
|
|
Tensor outHandle = predictor.getOutputHandle(outNames);
|
|
|
float[] outData = new float[outHandle.getSize()];
|
|
|
outHandle.copyToCpu(outData);
|
|
|
+
|
|
|
long time2 = System.currentTimeMillis();
|
|
|
log.info("predictor2 outData[0]={},outDataLen={},cost={}", outData[0], outData.length, (time2 - time1));
|
|
|
|
|
@@ -48,11 +60,11 @@ public class DemoModel implements Model {
|
|
|
|
|
|
@Override
|
|
|
public boolean loadFromStream(InputStream in) throws Exception {
|
|
|
- String modelDir = PropertiesUtil.getString("model.dir") + "/demo";
|
|
|
+ String modelDir = PropertiesUtil.getString("model.dir") + "/dssm";
|
|
|
CompressUtil.decompressGzFile(in, modelDir);
|
|
|
|
|
|
- String modelFile = modelDir + "/inference.pdmodel";
|
|
|
- String paramFile = modelDir + "/inference.pdiparams";
|
|
|
+ String modelFile = modelDir + "/dssm.pdmodel";
|
|
|
+ String paramFile = modelDir + "/dssm.pdiparams";
|
|
|
|
|
|
Config config = new Config();
|
|
|
config.setCppModel(modelFile, paramFile);
|