From aa562d3b26d8b6de0f0fc0b842ba3894ebcf0945 Mon Sep 17 00:00:00 2001 From: bsw215583320 <baoshiwei121@163.com> Date: 星期一, 08 一月 2024 08:45:30 +0800 Subject: [PATCH] 优化模型调用 --- jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/util/HerbUtil.java | 16 +++++++++++++++- jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java | 32 +++++++++++++++++++------------- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/util/HerbUtil.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/util/HerbUtil.java index 8635429..90c6db2 100644 --- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/util/HerbUtil.java +++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/util/HerbUtil.java @@ -9,6 +9,10 @@ import ai.djl.modality.cv.transform.*; import ai.djl.modality.cv.translator.ImageClassificationTranslator; import ai.djl.translate.Translator; +import lombok.extern.slf4j.Slf4j; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.stereotype.Component; import javax.imageio.ImageIO; @@ -19,6 +23,7 @@ import java.util.ArrayList; import java.util.List; +@Slf4j @Component public class HerbUtil { @@ -56,6 +61,9 @@ System.out.println(output); result = output.topK(); } catch (Exception e) { + log.error("鑽潗璇嗗埆寮傚父锛侊紒"); + log.error(input.toString()); + log.error(predictor.toString()); e.printStackTrace(); } return result; @@ -103,7 +111,13 @@ //闅忎究璧峰悕 Model model = Model.newInstance("model", Device.cpu()); try { - InputStream inputStream = HerbUtil.class.getClassLoader().getResourceAsStream("model34.pt"); +// ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); +// Resource[] resources = resolver.getResources("../pytorch/model34.pt"); + // Resource resource = resources[0]; + File f = new File("../pytorch/model34.pt"); + + InputStream inputStream = new FileInputStream(f); + // InputStream inputStream = HerbUtil.class.getClassLoader().getResourceAsStream("model34.pt"); if (inputStream == null) { throw new RuntimeException("鎵句笉鍒版ā鍨嬫枃浠�"); } diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java index 0ca23e1..2878189 100644 --- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java +++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java @@ -95,23 +95,29 @@ } InputStream inputStream = file.getInputStream(); List<Classifications.Classification> predict = herbUtil.predict(inputStream); - Map<String, Double> collect = predict.stream().collect(Collectors.toMap(Classifications.Classification::getClassName, Classifications.Classification::getProbability)); + + if(predict.size()>0) { + Map<String, Double> collect = predict.stream().collect(Collectors.toMap(Classifications.Classification::getClassName, Classifications.Classification::getProbability)); - List<DryHerbInfoVo> voList = new ArrayList<>(); - Set<String> strings = collect.keySet(); - List<DryHerbInfo> list = herbInfoService.list(new LambdaQueryWrapper<DryHerbInfo>().in(DryHerbInfo::getPinyin, strings)); - list.forEach(item -> { - DryHerbInfoVo dryHerbInfoVo = new DryHerbInfoVo(); - BeanUtil.copyProperties(item, dryHerbInfoVo); - dryHerbInfoVo.setProbabily(collect.get(item.getPinyin())); - voList.add(dryHerbInfoVo); - }); + List<DryHerbInfoVo> voList = new ArrayList<>(); + Set<String> strings = collect.keySet(); + List<DryHerbInfo> list = herbInfoService.list(new LambdaQueryWrapper<DryHerbInfo>().in(DryHerbInfo::getPinyin, strings)); + list.forEach(item -> { + DryHerbInfoVo dryHerbInfoVo = new DryHerbInfoVo(); + BeanUtil.copyProperties(item, dryHerbInfoVo); + dryHerbInfoVo.setProbabily(collect.get(item.getPinyin())); + voList.add(dryHerbInfoVo); + }); - List<DryHerbInfoVo> collect1 = voList.stream().sorted(Comparator.comparing(DryHerbInfoVo::getProbabily, Comparator.reverseOrder())). - collect(Collectors.toList()); + List<DryHerbInfoVo> collect1 = voList.stream().sorted(Comparator.comparing(DryHerbInfoVo::getProbabily, Comparator.reverseOrder())). + collect(Collectors.toList()); - return Result.ok(collect1); + return Result.ok(collect1); + } else { + return Result.error("AI璇嗗埆鏈嶅姟寮傚父"); + } + } catch (Exception e) { e.printStackTrace(); return Result.error("AI璇嗗埆鏈嶅姟寮傚父"); -- Gitblit v1.9.3