Browse Source

算法训练模块bug修改

Rgx 8 months ago
parent
commit
3696dc9ef2

+ 1 - 1
src/main/java/io/renren/modules/sys/controller/algs/algTrainController.java

@@ -147,7 +147,7 @@ public class algTrainController {
             List<FileTest> fileList=MinIoUtils.listFiles("algorithm","alg"+map.get("algorithmId")+"/version"+map.get("versionId"));
             for(FileTest file:fileList){
                 //从minio中获得目标文件的输入流
-                InputStream input= MinIoUtils.getFileInputStream("algorithm","alg"+map.get("algorithmId")+"/version"+map.get("versionId")+"/"+file.getFilename());
+                InputStream input= MinIoUtils.getFileInputStream("algorithm",file.getFilename());
                 //从minio中获取的文件上传至服务器
                 FTPUtils.uploadFile("algTrain"+algTrain.getAlgorithmTrainingId(),file.getFilename(),input);
             }

+ 42 - 11
src/main/java/io/renren/modules/sys/controller/algs/algsController.java

@@ -19,7 +19,6 @@ import io.renren.modules.sys.entity.dataset.DataSetDy;
 import io.renren.modules.sys.service.*;
 import io.renren.modules.sys.service.impl.AlgsModelsServiceImpl;
 import io.renren.modules.sys.service.impl.AlgsServiceImpl;
-import jdk.internal.org.objectweb.asm.TypeReference;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -134,10 +133,18 @@ public class algsController{
         List<MultipartFile> files=request.getFiles("file");
         //若是智能算法,则调用上传智能算法方法,-1为传统算法,其他为智能算法
         if(alg.getFrameId()!=-1){
-            String dataSetsString= request.getParameter("dataSets");//如果有选择数据集,则将数据集从minio中拷贝到相应位置
+            List<DataSet> dataSets = new ArrayList<>();
+            List<DataSetDy> dataSetsDy = new ArrayList<>();
+            if (StringUtils.isNotEmpty(request.getParameter("dataSets"))) {
+                dataSets = JSON.parseArray(request.getParameter("dataSets"), DataSet.class);//如果有选择数据集,则将数据集从minio中拷贝到相应位置
+            }
+            if (StringUtils.isNotEmpty(request.getParameter("dataSetsDy"))) {
+                dataSetsDy = JSON.parseArray(request.getParameter("dataSetsDy"), DataSetDy.class);
+            }
+            // String dataSetsString= request.getParameter("dataSets");//如果有选择数据集,则将数据集从minio中拷贝到相应位置
             String algModelsString=request.getParameter("algModels");//如果有选择算法,则将对应算法代码拷贝到相应位置
             String algTemplatesString=request.getParameter("algTemplates");//如果有选择模板,则将对应模板代码拷贝到相应位置
-            saveIntelligentAlg(alg,dataSetsString,algModelsString,algTemplatesString,files);
+            saveIntelligentAlg(alg,dataSets,dataSetsDy,algModelsString,algTemplatesString,files);
         }else {
             List<DataSet> dataSets = new ArrayList<>();
             List<DataSetDy> dataSetsDy = new ArrayList<>();
@@ -160,12 +167,13 @@ public class algsController{
     /**
      * 保存智能算法
      * @param alg 算法对象实体
-     * @param dataSetsString 算法引入的数据集id,以逗号分隔
+     * @param dataSets 算法引入的静态数据集
+     * @param dataSets 算法引入的动态数据集
      * @param algModelsString 算法引入的算法库算法id,以逗号分隔
      * @param algTemplatesString 算法引入的算法模板id,以逗号分隔
      * @param files 算法文件
      */
-    public void saveIntelligentAlg(Algorithm alg,String dataSetsString,String algModelsString,String algTemplatesString,List<MultipartFile> files) throws IOException, InvalidKeyException, NoSuchAlgorithmException, InsufficientDataException, InvalidResponseException, ErrorResponseException, XmlParserException, InvalidBucketNameException, InternalException {
+    public void saveIntelligentAlg(Algorithm alg,List<DataSet> dataSets, List<DataSetDy> dataSetsDy,String algModelsString,String algTemplatesString,List<MultipartFile> files) throws IOException, InvalidKeyException, NoSuchAlgorithmException, InsufficientDataException, InvalidResponseException, ErrorResponseException, XmlParserException, InvalidBucketNameException, InternalException {
         Long algId=alg.getAlgorithmId();
         Version version=new Version();
         version.setAlgorithmId(algId);
@@ -178,12 +186,35 @@ public class algsController{
             if(file.isEmpty())  break;
             MinIoUtils.uploadMultipartFile(file,"algorithm","alg"+algId+"/version"+versionService.getMaxId()+"/"+file.getOriginalFilename());
         }
-        if(dataSetsString.length()!=0){
-            String[] dataSets=dataSetsString.split(",");
-            for(String fileName:dataSets){
-                MinIoUtils.copyFile("algorithm","alg"+algId+"/version"+versionService.getMaxId()+"/"+fileName,"dataset",fileName);
+        //将数据集上传
+        if (!dataSets.isEmpty()) {
+            for (DataSet dataSet : dataSets) {
+                CategoryEntity category = categoryService.getById(dataSet.getCategoryId());
+                if (DataSetType.DIR_DATASET.getClassificationName().equals(category.getCategoryName())) {
+                    MinIoUtils.copyFolder("algorithm", "alg"+algId+"/", DataSetType.STATIC_DATASET.getBucketName(), dataSet.getDatasetName() + "/");
+                } else {
+                    MinIoUtils.copyFile("algorithm",
+                                        "alg"+algId+"/version"+versionService.getMaxId()+"/"+ dataSet.getDatasetName()+".csv",
+                                                     DataSetType.STATIC_DATASET.getBucketName(),
+                                      dataSet.getDatasetName()+".csv");
+                }
+            }
+        }
+
+        if (!dataSetsDy.isEmpty()) {
+            for (DataSetDy dataSetDy : dataSetsDy) {
+                MinIoUtils.copyFile("algorithm",
+                                    "alg"+algId+"/version"+versionService.getMaxId()+"/"+ dataSetDy.getDatasetName()+".csv",
+                                                 DataSetType.DYNAMIC_DATASET.getBucketName(),
+                                  dataSetDy.getDatasetName()+".csv");
             }
         }
+//        if(dataSetsString.length()!=0){
+//            String[] dataSets=dataSetsString.split(",");
+//            for(String fileName:dataSets){
+//                MinIoUtils.copyFile("algorithm","alg"+algId+"/version"+versionService.getMaxId()+"/"+fileName+".csv",DataSetType.DYNAMIC_DATASET.getBucketName(),fileName+".csv");
+//            }
+//        }
         //MinIoUtils.copyFile("algorithm","alg"+algId+"/version"+versionService.getMaxId()+"/fea_data.csv","dataset","fea_data.csv");
         if(algModelsString.length()!=0){
             String[] algModels=algModelsString.split(",");
@@ -282,14 +313,14 @@ public class algsController{
                 if (DataSetType.DIR_DATASET.getClassificationName().equals(category.getCategoryName())) {
                     MinIoUtils.copyFolder("algorithm", "alg"+algId+"/", DataSetType.STATIC_DATASET.getBucketName(), dataSet.getDatasetName() + "/");
                 } else {
-                    MinIoUtils.copyFile("algorithm","alg"+algId+"/"+dataSet.getDatasetName(), DataSetType.STATIC_DATASET.getBucketName(), dataSet.getDatasetName());
+                    MinIoUtils.copyFile("algorithm","alg"+algId+"/"+dataSet.getDatasetName()+".csv", DataSetType.STATIC_DATASET.getBucketName(), dataSet.getDatasetName()+".csv");
                 }
             }
         }
 
         if (!dataSetsDy.isEmpty()) {
             for (DataSetDy dataSetDy : dataSetsDy) {
-                MinIoUtils.copyFile("algorithm", "alg"+algId+"/"+dataSetDy.getDatasetName(), DataSetType.DYNAMIC_DATASET.getBucketName(), dataSetDy.getDatasetName());
+                MinIoUtils.copyFile("algorithm", "alg"+algId+"/"+dataSetDy.getDatasetName()+".csv", DataSetType.DYNAMIC_DATASET.getBucketName(), dataSetDy.getDatasetName()+".csv");
             }
         }