From 5b952f77058a9da5af5e143a6c2c7ba195aa736d Mon Sep 17 00:00:00 2001 From: liriming <1343021927@qq.com> Date: 星期二, 26 十一月 2024 16:08:10 +0800 Subject: [PATCH] 预测消息配置 --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictModelHandlerImpl.java | 53 +++++++++++++++++++++++++---------------------------- 1 files changed, 25 insertions(+), 28 deletions(-) diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictModelHandlerImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictModelHandlerImpl.java index 5a107da..9d5359b 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictModelHandlerImpl.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictModelHandlerImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.iail.model.IAILModel; import com.iailab.module.model.common.enums.CommonConstant; +import com.iailab.module.model.common.enums.OutResultType; import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity; import com.iailab.module.model.mcs.pre.entity.MmModelArithSettingsEntity; import com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity; @@ -55,12 +56,11 @@ throw new ModelInvokeException("modelEntity is null"); } String modelId = predictModel.getId(); - try { List<SampleData> sampleDataList = sampleConstructor.constructSample(TypeA.Predict.name(), modelId, predictTime); String modelPath = predictModel.getModelpath(); if (modelPath == null) { - System.out.println("模型路径不存在,modelId=" + modelId); + log.info("模型路径不存在,modelId=" + modelId); return null; } IAILModel newModelBean = composeNewModelBean(predictModel); @@ -93,36 +93,33 @@ } modelResult = (HashMap<String, Object>) modelResult.get(CommonConstant.MDK_RESULT); //打印结果 + log.info("模型计算完成:modelId=" + modelId + modelResult); JSONObject jsonObjResult = new JSONObject(); jsonObjResult.put("result", modelResult); log.info(String.valueOf(jsonObjResult)); - List<MmItemOutputEntity> ItemOutputList = mmItemOutputService.getByItemid(predictModel.getItemid()); - log.info("模型计算完成:modelId=" + modelId + modelResult); - - Map<MmItemOutputEntity, double[]> predictMatrixs = new HashMap<>(ItemOutputList.size()); - - for (MmItemOutputEntity outputEntity : ItemOutputList) { - String resultStr = outputEntity.getResultstr(); - if (modelResult.containsKey(resultStr)) { - if (outputEntity.getResultType() == 1) { - // 一维数组 - Double[] temp = (Double[]) modelResult.get(resultStr); - double[] temp1 = new double[temp.length]; - for (int i = 0; i < temp.length; i++) { - temp1[i] = temp[i].doubleValue(); + List<MmItemOutputEntity> itemOutputList = mmItemOutputService.getByItemid(predictModel.getItemid()); + Map<MmItemOutputEntity, double[]> predictMatrixs = new HashMap<>(itemOutputList.size()); + for (MmItemOutputEntity output : itemOutputList) { + if (!modelResult.containsKey(output.getResultstr())) { + continue; + } + OutResultType outResultType = OutResultType.getEumByCode(output.getResultType()); + switch (outResultType) { + case D1: + double[] temp1 = (double[]) modelResult.get(output.getResultstr()); + predictMatrixs.put(output, temp1); + break; + case D2: + double[][] temp2 = (double[][]) modelResult.get(output.getResultstr()); + double[] tempColumn = new double[temp2.length]; + for (int i = 0; i < tempColumn.length; i++) { + tempColumn[i] = temp2[i][output.getResultIndex()]; } - predictMatrixs.put(outputEntity, temp1); - } else if (outputEntity.getResultType() == 2) { - // 二维数组 - Double[][] temp = (Double[][]) modelResult.get(resultStr); - Double[] temp2 = temp[outputEntity.getResultIndex()]; - double[] temp1 = new double[temp2.length]; - for (int i = 0; i < temp2.length; i++) { - temp1[i] = temp2[i].doubleValue(); - } - predictMatrixs.put(outputEntity, temp1); - } + predictMatrixs.put(output, tempColumn); + break; + default: + break; } } result.setPredictMatrixs(predictMatrixs); @@ -130,8 +127,8 @@ result.setPredictTime(predictTime); } catch (Exception ex) { log.error("调用发生异常,异常信息为:{}", ex); - log.error(ex.getMessage()); ex.printStackTrace(); + throw new ModelInvokeException(ex.getMessage()); } return result; } -- Gitblit v1.9.3