47 lines
3.2 KiB
C++
47 lines
3.2 KiB
C++
#ifndef ANSODTRE_H
|
|
#define ANSODTRE_H
|
|
#pragma once
|
|
#include "ANSTrainingEngine.h"
|
|
|
|
namespace ANSCENTER {
|
|
|
|
class ANSTRE_API ANSODTRE: public ANSTRE {
|
|
public:
|
|
ANSODTRE();
|
|
~ANSODTRE();
|
|
[[nodiscard]] bool Init(std::string licenseKey, std::string projectDirectory, std::string engineDirectory, std::string modelTemplateDirectory, std::string modelZipPassword, bool isLatestEngine)override;
|
|
[[nodiscard]] std::vector<std::string> GetProjects()override;// Return a list of projects in the project directory
|
|
[[nodiscard]] std::vector<std::string> GetProjectExperiments(std::string projectName)override;// Return a list of experiments for a specific project
|
|
[[nodiscard]] bool CreateProject(std::string projectName)override;
|
|
[[nodiscard]] bool DeleteProject(std::string projectName)override;
|
|
[[nodiscard]] bool SetWorkingDirectory(std::string workingDirectory)override;
|
|
[[nodiscard]] bool UploadTrainingData(std::string projectName)override; // Upload the training data to the project
|
|
[[nodiscard]] bool CreateTrainingEngine(std::string projectName,int experimentNumber, int extractorType, long numberStep, int batchSize, double learningRate)override;// extractorType =0: FAST, 1: ACCURATE; 2: VERY ACCURATE
|
|
[[nodiscard]] std::string GetProjectExperimentStatus(std::string projectName, int experimentNumber)override;// Return the status of a specific experiment
|
|
[[nodiscard]] std::string GenerateTrainingCommand(std::string projectName,int experimentNumber, int extractorType)override; //Generate the training command
|
|
[[nodiscard]] std::string GenerateCustomTrainingCommand(std::string projectName, int experimentNumber, int extractorType, std::string pretrainedModel)override; //Generate the training command
|
|
[[nodiscard]] std::string GenerateEvaluateModelCommand(std::string projectName,int experimentNumber, bool& zipModelExist)override; //Evaluate the accuracy of the model
|
|
[[nodiscard]] std::string EvaluateModel(std::string projectName, int experimentNumber)override; //Evaluate the accuracy of the model
|
|
[[nodiscard]] bool DownloadModel(std::string projectName, int experimentNumber, std::string destZipDirectory, int modelModel = 0)override;
|
|
[[nodiscard]] std::string ParseTrainingResults(std::string trainingResults)override;
|
|
[[nodiscard]] bool CheckEngineStatus() override;
|
|
[[nodiscard]] bool CheckEngine() override;
|
|
[[nodiscard]] std::string GenerateTestCommand(std::string projectName, int experimentNumber, bool& zipModelExist, const std::string& testDataFolder)override; //Generate the test command
|
|
|
|
|
|
private:
|
|
std::string AdjustRootDirectory(const std::string& root);
|
|
int GenerateClassNamesFile(std::string labelMapFile, std::string objectDataFile, bool useANSClassFile);
|
|
bool GenerateObjectDataFile(int numberOfClass, std::string objectDataFile);
|
|
void GenerateTrainDataSet(const std::string& sourceFolder, const std::string& trainFolder, const std::string& testFolder, double trainRatio = 0.8);
|
|
bool GenerateConfigFile(const std::string& templateFile,
|
|
const std::string& outputFile,
|
|
const std::map<std::string, std::string>& replacements);
|
|
int ReadClassesValue(const std::string& filePath);
|
|
std::string ParseMAP(const std::string& text);
|
|
void CheckLicense();
|
|
void DeleteWeightsFiles(const std::string& folderPath);
|
|
};
|
|
}
|
|
#endif
|